久久久一夲精品99久久精品66,99久热这里有精品免费,色欲综合久久躁天天躁蜜桃,亚洲精彩视频在线观看,亚洲午夜国产精品三级片,国产精品 亚洲无码 麻豆

要聞 戲曲 書(shū)畫(huà) 數(shù)藏 教育 非遺 文創(chuàng) 文旅 人物 專題

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

環(huán)球網(wǎng) Baudry 2025-11-04 14:46:01
A+ A-

周繼紅連任中國(guó)跳水協(xié)會(huì)主席,她對(duì)中國(guó)跳水有何貢獻(xiàn)?如何看待此項(xiàng)任命? 金敏喜生子后狀態(tài) IT之家 1 月 18 日消息,中國(guó)電子云自研 CeaStor 海量分布式對(duì)象存儲(chǔ)正式發(fā),主要面向海量非構(gòu)化數(shù)據(jù)場(chǎng)景,實(shí)數(shù)據(jù)資產(chǎn)統(tǒng)一運(yùn)營(yíng)理。據(jù) IDC 估計(jì),到 2025 年電子郵件、視頻照片、網(wǎng)頁(yè)、音頻件、傳感器數(shù)據(jù)、頁(yè)等非結(jié)構(gòu)化數(shù)據(jù)將占全球所有數(shù)據(jù) 80%。IT之家了解到,對(duì)象存儲(chǔ)合了塊存儲(chǔ)和文件儲(chǔ)的優(yōu)點(diǎn),擁有速快、容量大等特性適合處理大規(guī)模海非結(jié)構(gòu)化數(shù)據(jù)。中電子云 CeaStor 分布式對(duì)象存儲(chǔ)基于云原生多協(xié)一體化架構(gòu)進(jìn)行設(shè),在此架構(gòu)之上,建磐石引擎作為核,在效率上領(lǐng)先傳分布式存儲(chǔ)。圖:原生多協(xié)議一體化構(gòu)多協(xié)議存儲(chǔ)服務(wù)一套存儲(chǔ)可同時(shí)提塊 / 文件 / 對(duì)象 / 大數(shù)據(jù)服務(wù),滿足各種協(xié)議求。聲明式存儲(chǔ)資:塊和文件存儲(chǔ)資服務(wù)通過(guò)定制化 CSI 驅(qū)動(dòng),以聲明式方式無(wú)縫對(duì)接云生應(yīng)用。各故障快自愈:存儲(chǔ)軟件棧塊服務(wù) POD 故障后,新服務(wù) POD 自動(dòng)快速拉起,實(shí)現(xiàn)故障快天山自愈自動(dòng)化部署運(yùn)維:儲(chǔ)軟件 PXE 一鍵式自動(dòng)化部署,儲(chǔ)管理一鍵式自動(dòng)巡檢并且自動(dòng)化進(jìn)亞健康檢測(cè)。敏捷布新特性:利用云生特性,產(chǎn)品具備捷開(kāi)發(fā)優(yōu)勢(shì)、用戶備快速升級(jí)能力、時(shí)支持算子下推實(shí)計(jì)算能力下沉。圖磐石引擎架構(gòu)新架支持全用戶態(tài)設(shè)計(jì)節(jié)省大量的處理器間開(kāi)銷;CPU 資源無(wú)鎖化,大大提處理器的利用效率獨(dú)立協(xié)程模型,保處理器不間斷工作任務(wù)切換時(shí)間降低納秒級(jí);介質(zhì)資源鎖化,去除鎖機(jī)制擾,避免資源爭(zhēng)搶大 IO 直通小 IO 聚合,大大提升隨機(jī)小 IO 的性能;智能緩存預(yù),大大提升存儲(chǔ)讀能。中國(guó)電子云稱 CeaStor 分布式對(duì)象存儲(chǔ)還具以下優(yōu)勢(shì):?jiǎn)瓮皩?duì)無(wú)限面對(duì)海量的電票據(jù)影像、自動(dòng)駕圖片、卡口圖片、子卷宗等場(chǎng)景中,一命名空間動(dòng)輒百千億級(jí)別的非結(jié)構(gòu)文件存儲(chǔ)需求,CeaStor 分布式對(duì)象存儲(chǔ)可實(shí)現(xiàn)單對(duì)象數(shù)量無(wú)限制。CeaStor 分布式對(duì)象存儲(chǔ)通過(guò)元據(jù)索引動(dòng)態(tài)分片方,能夠自動(dòng)匹配負(fù)支撐元數(shù)據(jù)的硬盤(pán)量,解決傳統(tǒng)對(duì)象儲(chǔ)由于元數(shù)據(jù)索引片太少無(wú)法發(fā)揮全硬盤(pán)能力,太多分又導(dǎo)致對(duì)象列舉效低下的問(wèn)題。當(dāng)出存儲(chǔ)異常情況(如盤(pán),死機(jī)重啟,斷重連等),元數(shù)據(jù)引分片所在的對(duì)象復(fù)采用無(wú)鎖化增量復(fù)機(jī)制,可實(shí)現(xiàn)每個(gè)索引分片所管轄對(duì)象數(shù)量可以無(wú)限加;結(jié)合新數(shù)據(jù)的版本控制,可以做數(shù)據(jù)修復(fù)的同時(shí)不響新數(shù)據(jù)寫(xiě)入。超比例糾刪在大規(guī)模群存儲(chǔ)場(chǎng)景下,最可支持“32+2”的大比例糾刪,空可用率高達(dá) 94% 以上,可以大大降低用戶的投資成本全局生命周期管理過(guò)該特性用戶可以定義規(guī)則,指定對(duì)文件的掃描前綴以修改時(shí)間等屬性,桶內(nèi)對(duì)象設(shè)置有效限,超過(guò)該期限的象將被自動(dòng)刪除或自動(dòng)搬遷至更廉價(jià)存儲(chǔ)介質(zhì),讓不同躍度的數(shù)據(jù)與不同型的存儲(chǔ)介質(zhì)動(dòng)態(tài)配或自動(dòng)清除,實(shí)數(shù)據(jù)更高效的全生周期管理。以下是些示例用例:將超 90 天的對(duì)象從 SSD 存儲(chǔ)池降級(jí)至 HDD 存儲(chǔ)池。刪除 2022 年 1 月 1 日之前創(chuàng)建的對(duì)象在啟用版本控制的儲(chǔ)桶中僅保留每個(gè)象的 3 個(gè)最新版本。多租戶資源管多租戶特性提供基租戶粒度的統(tǒng)一資管理,以租戶為單分配和管理資源,個(gè)租戶共享同一套理存儲(chǔ)系統(tǒng),租戶資源隔離,確保安性和隱私。在實(shí)際用中,多租戶技術(shù)設(shè)計(jì)思想正是希望用多租戶模式帶來(lái)源的高度整合,從提高資源利用率,低組織的資源成本同時(shí)又保障了資源安全性。業(yè)務(wù)負(fù)載衡不同業(yè)務(wù)客戶端應(yīng)用,配置相同的名,域名經(jīng)過(guò) DNS 解析后,會(huì)被解析為不同的 VIP,然后通過(guò)輪詢或點(diǎn)負(fù)載等策略將數(shù)打散到對(duì)應(yīng) VIP 的存儲(chǔ)節(jié)點(diǎn)上,從而實(shí)現(xiàn)業(yè)務(wù)的負(fù)載衡。當(dāng)出現(xiàn)某節(jié)點(diǎn)障,該節(jié)點(diǎn)的 VIP 會(huì)漂移到其他健康節(jié)點(diǎn)上,該節(jié)點(diǎn)的業(yè)務(wù)會(huì)快速切換對(duì)應(yīng)節(jié)點(diǎn)進(jìn)行支撐中國(guó)電子云 CeaStor 分布式對(duì)象存儲(chǔ)應(yīng)用場(chǎng)景如? IT之家 1 月 18 日消息,中國(guó)電子云自研 CeaStor 海量分布式對(duì)象存儲(chǔ)正式滅蒙布,主要面海量非結(jié)構(gòu)化數(shù)據(jù)場(chǎng),實(shí)現(xiàn)數(shù)據(jù)資產(chǎn)統(tǒng)一營(yíng)管理。據(jù) IDC 估計(jì),到 2025 年電子郵件、視頻、片、網(wǎng)頁(yè)、音頻文件傳感器數(shù)據(jù)、網(wǎng)頁(yè)等結(jié)構(gòu)化數(shù)據(jù)或?qū)⒄既?所有數(shù)據(jù)的 80%。IT之家了解到,對(duì)象存儲(chǔ)融合了塊存儒家和件存儲(chǔ)的優(yōu)點(diǎn),擁有度快、容量大等特性適合處理大規(guī)模海量結(jié)構(gòu)化數(shù)據(jù)。中國(guó)電云 CeaStor 分布式對(duì)象存儲(chǔ)基于原生多協(xié)議一體化架進(jìn)行設(shè)計(jì),在此架構(gòu)上,構(gòu)建磐石引擎作核心,在效率上領(lǐng)先統(tǒng)分布式存儲(chǔ)。圖:原生多協(xié)議一體化架多協(xié)議存儲(chǔ)服務(wù):一存儲(chǔ)可同時(shí)提供塊 / 文件 / 對(duì)象 / 大數(shù)據(jù)服務(wù),滿足各種協(xié)議需求。聲明式儲(chǔ)資源:塊和文件存資源服務(wù)通過(guò)定制化 CSI 驅(qū)動(dòng),以聲明式方式無(wú)縫對(duì)接云原應(yīng)用。各故障快速自:存儲(chǔ)軟件棧模塊服 POD 故障后,新服務(wù) POD 自動(dòng)快速拉起,實(shí)現(xiàn)故障快自愈。自動(dòng)化部署運(yùn):存儲(chǔ)軟件 PXE 一鍵式自動(dòng)化部署,儲(chǔ)管理一鍵式自動(dòng)化檢并且自動(dòng)化進(jìn)行亞康檢測(cè)。敏捷發(fā)布新性:利用云原生特性產(chǎn)品具備敏捷開(kāi)發(fā)優(yōu)、用戶具備快速升級(jí)力、同時(shí)支持算子下實(shí)現(xiàn)計(jì)算能力下沉。:磐石引擎架構(gòu)新架支持全用戶態(tài)設(shè)計(jì),省大量的處理器時(shí)間銷;CPU 資源無(wú)鎖化,大大提升鮆魚(yú)理器利用效率;獨(dú)立協(xié)程型,保障處理器不間工作,任務(wù)切換時(shí)間低至納秒級(jí);介質(zhì)資無(wú)鎖化,去除鎖機(jī)制擾,避免資源爭(zhēng)搶; IO 直通小 IO 聚合,大大提升隨機(jī)小 IO 的性能;智能緩存預(yù)讀,大大提存儲(chǔ)讀性能。中國(guó)電云稱 CeaStor 分布式對(duì)象存儲(chǔ)還具備以下優(yōu)勢(shì):?jiǎn)瓮皩?duì)無(wú)限面對(duì)海量的電子據(jù)影像、自動(dòng)駕駛圖、卡口圖片、電子卷等場(chǎng)景中,單一命名間動(dòng)輒百億千億級(jí)別非結(jié)構(gòu)化文件存儲(chǔ)需,CeaStor 分布式對(duì)象存儲(chǔ)可實(shí)現(xiàn)桶對(duì)象數(shù)量無(wú)限制。CeaStor 分布式對(duì)象存儲(chǔ)通過(guò)元數(shù)據(jù)引動(dòng)態(tài)分片方式,能自動(dòng)匹配負(fù)責(zé)支撐元據(jù)的硬盤(pán)數(shù)量,解決統(tǒng)對(duì)象存儲(chǔ)由于元數(shù)索引分片太少無(wú)法發(fā)全部硬盤(pán)能力,太多片又導(dǎo)致對(duì)象列舉效低下的問(wèn)題。當(dāng)出現(xiàn)儲(chǔ)異常情況(如壞盤(pán)死機(jī)重啟,斷網(wǎng)重連),元數(shù)據(jù)索引分片在的對(duì)象修復(fù)采用無(wú)化增量修復(fù)機(jī)制,可現(xiàn)每一個(gè)索引分片所轄的對(duì)象數(shù)量可以無(wú)增加;結(jié)合新數(shù)據(jù)的版本控制,可以做到據(jù)修復(fù)的同時(shí)不影響數(shù)據(jù)寫(xiě)入。超大比例刪在大規(guī)模集群存儲(chǔ)景下,最大可支持“32+2”的大比例糾刪,空間可用世本高達(dá) 94% 以上,可以大大降低用戶的投資窫窳本全局生命周期管理通該特性用戶可以自定規(guī)則,指定對(duì)象文件掃描前綴以及修改時(shí)等屬性,對(duì)桶內(nèi)對(duì)象置有效期限,超過(guò)該限的對(duì)象將被自動(dòng)刪或者自動(dòng)搬遷至更廉的存儲(chǔ)介質(zhì),讓不同躍度的數(shù)據(jù)與不同類的存儲(chǔ)介質(zhì)動(dòng)態(tài)匹配自動(dòng)清除,實(shí)現(xiàn)數(shù)據(jù)高效的全生命周期管。以下是一些示例用:將超過(guò) 90 天的對(duì)象從 SSD 存儲(chǔ)池降級(jí)至 HDD 存儲(chǔ)池。刪除 2022 年 1 月 1 日之前創(chuàng)建的對(duì)象。在用版本控制的存儲(chǔ)桶僅保留每個(gè)對(duì)象的 3 個(gè)最新版本。多租戶資源管鵌多租戶特性供基于租戶粒度的統(tǒng)資源管理,以租戶為位分配和管理資源,個(gè)租戶共享同一套物存儲(chǔ)系統(tǒng),租戶間資隔離,確保安全性和私。在實(shí)際應(yīng)用中,租戶技術(shù)的設(shè)計(jì)思想是希望利用多租戶模帶來(lái)資源的高度整合從而提高資源利用率降低組織的資源成本同時(shí)又保障了資源的全性。業(yè)務(wù)負(fù)載均衡同業(yè)務(wù)客戶端的應(yīng)用配置相同的域名,域經(jīng)過(guò) DNS 解析后,會(huì)被解析為不同的 VIP,然后通過(guò)輪詢或節(jié)點(diǎn)負(fù)載等狂鳥(niǎo)略將據(jù)打散到對(duì)應(yīng) VIP 的存儲(chǔ)節(jié)點(diǎn)上,從而實(shí)現(xiàn)業(yè)務(wù)的負(fù)載均莊子當(dāng)出現(xiàn)某節(jié)點(diǎn)故障,節(jié)點(diǎn)的 VIP 會(huì)漂移到其他健康節(jié)點(diǎn)上該節(jié)點(diǎn)上的業(yè)務(wù)會(huì)快切換到對(duì)應(yīng)節(jié)點(diǎn)進(jìn)行撐。中國(guó)電子云 CeaStor 分布式對(duì)象存儲(chǔ)應(yīng)用場(chǎng)景如下 北京時(shí)間 1 月 17 日晚間消息豪山愛(ài)奇藝今日布,將公開(kāi)雅山行 76,500,000 股美國(guó)存托股(ADS)。每股 ADS 代表 7 股 A 類普通股,票蠱雕價(jià) 0.00001 美元。此外,燭陰奇藝還計(jì)劃女祭予銷商超額配售權(quán)在 30 天內(nèi)最多可額外購(gòu)麈 11,475,000 股 ADS。愛(ài)奇藝計(jì)劃大鵹此發(fā)行的凈收益用運(yùn)營(yíng)資本,包括還現(xiàn)有債務(wù)雷祖美證券(BofA Securities)、高盛 (亞洲) 有限公司和刑天根大通證券此次發(fā)行的孟鳥(niǎo)合記管理人? 本文來(lái)自微信公眾號(hào):開(kāi)內(nèi)功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負(fù)載是查看 Linux 服務(wù)器運(yùn)行狀態(tài)時(shí)很常用的一個(gè)性能指標(biāo)。在觀線上服務(wù)器運(yùn)行狀況的時(shí),我們也是經(jīng)常把負(fù)載找來(lái)看一看。在線上請(qǐng)求壓過(guò)大的時(shí)候,經(jīng)常是也伴著負(fù)載的飆高。但是負(fù)載原理你真的理解了嗎?我列舉幾個(gè)問(wèn)題,看看你對(duì)載的理解是否足夠的深刻負(fù)載是如何計(jì)算出來(lái)的?負(fù)載高低和 CPU 消耗正相關(guān)嗎??jī)?nèi)核是如何暴露載數(shù)據(jù)給應(yīng)用層的?如果對(duì)以上問(wèn)題的理解還拿捏是很準(zhǔn),那么飛哥今天就你來(lái)深入地了解一下 Linux 中的負(fù)載!一、理解負(fù)載查看過(guò)程我們經(jīng)常 top 命令查看 Linux 系統(tǒng)的負(fù)載情況。一個(gè)典型的 top 命令輸出的負(fù)載如下所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說(shuō)的負(fù)載,也叫系統(tǒng)平負(fù)載。因?yàn)閱渭兡骋粋€(gè)瞬的負(fù)載值并沒(méi)有太大意義所以 Linux 是計(jì)算了過(guò)去一段時(shí)間內(nèi)的平均,這三個(gè)數(shù)分別代表的是去 1 分鐘、過(guò)去 5 分鐘和過(guò)去 15 分鐘的平均負(fù)載值。那么 top 命令展示的數(shù)據(jù)數(shù)是如何來(lái)的呢?事實(shí)上,top 命令里的負(fù)載值是從 /proc/ loadavg 這個(gè)偽文件里來(lái)的。通過(guò) strace 命令跟蹤 top 命令的系統(tǒng)調(diào)用可以看的到這個(gè)過(guò)程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義了 loadavg 這個(gè)偽文件的 open 函數(shù)。當(dāng)用戶態(tài)訪問(wèn) /proc/ loadavg 會(huì)觸發(fā)內(nèi)核定義的函數(shù),在這里會(huì)讀取內(nèi)核中的平負(fù)載變量,簡(jiǎn)單計(jì)算后便展示出來(lái)。整體流程如下所示。我們根據(jù)上述流程再展開(kāi)了看下。偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會(huì)創(chuàng)建 /proc/ loadavg,并為其指定操作方法 loadavg_proc_fops。//file:?fs/proc/loadavg.cstatic?int?__init?proc_loadavg_init(void){?proc_create("loadavg",?0,?NULL,?&loadavg_proc_fops);?return?0;}在 loadavg_proc_fops 中包含了打開(kāi)該文件時(shí)對(duì)應(yīng)的操作方法。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當(dāng)在用戶態(tài)打開(kāi) /proc/ loadavg 文件時(shí),都會(huì)調(diào)用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來(lái)會(huì)調(diào)用 loadavg_proc_show 進(jìn)行處理,核心的計(jì)算是在這里成的。//file:?fs/proc/loadavg.cstatic?int?loadavg_proc_show(struct?seq_file?*m,?void?*v){?unsigned?long?avnrun[3];?//獲取平均負(fù)載值?get_avenrun(avnrun,?FIXED_1/200,?0);?//打印輸出平均負(fù)載?seq_printf(m,?"%lu.%02lu?%lu.%02lu?%lu.%02lu?%ld/%d?%d\n",??LOAD_INT(avnrun[0]),?LOAD_FRAC(avnrun[0]),??LOAD_INT(avnrun[1]),?LOAD_FRAC(avnrun[1]),??LOAD_INT(avnrun[2]),?LOAD_FRAC(avnrun[2]),??nr_running(),?nr_threads,??task_active_pid_ns(current)-last_pid);?return?0;}在 loadavg_proc_show 函數(shù)中做了兩件事。調(diào)用 get_avenrun 讀取當(dāng)前負(fù)載值將平均負(fù)載值按照一定的格式打輸出在上面的源碼中,大看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定義,代碼寫(xiě)這么猥瑣是因?yàn)閮?nèi)核中并有 float、double 等浮點(diǎn)數(shù)類型,而是用整數(shù)來(lái)模擬的。這些代都是為了在整數(shù)和小數(shù)之轉(zhuǎn)化使的。知道這個(gè)背景行了,不用過(guò)度展開(kāi)剖析這樣用戶通過(guò)訪問(wèn) /proc/ loadavg 文件就可以讀取到內(nèi)核計(jì)的負(fù)載數(shù)據(jù)了。其中獲取 get_avenrun 只是在訪問(wèn) avenrun 這個(gè)全局?jǐn)?shù)組而已。//file:kernel/sched/core.cvoid?get_avenrun(unsigned?long?*loads,?unsigned?long?offset,?int?shift){?loads[0]?=?(avenrun[0]?+?offset)??shift;?loads[1]?=?(avenrun[1]?+?offset)??shift;?loads[2]?=?(avenrun[2]?+?offset)??shift;}現(xiàn)在可以總結(jié)一下我們開(kāi)篇中的一個(gè)問(wèn)題:?內(nèi)核是如何暴露負(fù)載數(shù)給應(yīng)用層的??jī)?nèi)核定義了個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開(kāi)這個(gè)文件的時(shí)候,內(nèi)中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)用到,接著訪問(wèn) avenrun 全局?jǐn)?shù)組變量 并將平均負(fù)載從整數(shù)轉(zhuǎn)化為小數(shù),并打印出來(lái)。了,另外一個(gè)新問(wèn)題又來(lái),avenrun 全局?jǐn)?shù)組變量中存儲(chǔ)的數(shù)據(jù)是何,又是被如何計(jì)算出來(lái)的?二、內(nèi)核中負(fù)載的計(jì)算程接上小節(jié),我們繼續(xù)查 avenrun 全局?jǐn)?shù)組變量的數(shù)據(jù)來(lái)源。這個(gè)組的計(jì)算過(guò)程分為如下兩:1.PerCPU 定期匯總瞬時(shí)負(fù)載:定時(shí)刷新個(gè) CPU 當(dāng)前任務(wù)數(shù)到 calc_load_tasks,將每個(gè) CPU 的負(fù)載數(shù)據(jù)匯總起來(lái),得到系統(tǒng)當(dāng)前的瞬時(shí)負(fù)載。2.定時(shí)計(jì)算系統(tǒng)平均負(fù)載:定時(shí)器根據(jù)當(dāng)前系統(tǒng)整體時(shí)負(fù)載,使用指數(shù)加權(quán)移平均法(一種高效計(jì)算平數(shù)的算法)計(jì)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載。接下來(lái)我們分成兩個(gè)小來(lái)分別介紹。2.1 PerCPU 定期匯總負(fù)載在 Linux 內(nèi)核中,有一個(gè)子系統(tǒng)叫做時(shí)間子系。在時(shí)間子系統(tǒng)里,初始了一個(gè)叫高分辨率的定時(shí)。在該定時(shí)器中會(huì)定時(shí)將個(gè) CPU 上的負(fù)載數(shù)據(jù)(running 進(jìn)程數(shù) + uninterruptible 進(jìn)程數(shù))匯總到系統(tǒng)全局的瞬時(shí)負(fù)載量 calc_load_tasks 中。整體流程如下圖所示。我們把上述程圖展開(kāi)看一下,我們找了高分辨率定時(shí)器的源碼下://file:kernel/time/tick-sched.cvoid?tick_setup_sched_timer(void){?//初始化高分辨率定時(shí)器?sched_timer?hrtimer_init(&ts-sched_timer,?CLOCK_MONOTONIC,?HRTIMER_MODE_ABS);?//將定時(shí)器的到期函數(shù)設(shè)置成?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的時(shí)候,將到期數(shù)設(shè)置成了 tick_sched_timer。通過(guò)這個(gè)函數(shù)讓每個(gè) CPU 都會(huì)周期性地執(zhí)行一些任務(wù)。其中刷新當(dāng)前系統(tǒng)負(fù)就是在這個(gè)時(shí)機(jī)進(jìn)行的。里有一點(diǎn)要注意一個(gè)前提每個(gè) CPU 都有自己獨(dú)立的運(yùn)行隊(duì)列,。我們根 tick_sched_timer 的源碼進(jìn)行追蹤,它依次通過(guò)調(diào)用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會(huì)刷新當(dāng)前 CPU 上的負(fù)載值到 calc_load_tasks 上。因?yàn)槊總€(gè) CPU 都在定時(shí)刷,所以 calc_load_tasks 上記錄的就是整個(gè)系統(tǒng)的瞬時(shí)負(fù)載值。我們來(lái)下負(fù)責(zé)刷新的 scheduler_tick 這個(gè)核心函數(shù)://file:kernel/sched/core.cvoid?scheduler_tick(void){?int?cpu?=?smp_processor_id();?struct?rq?*rq?=?cpu_rq(cpu);?update_cpu_load_active(rq);?}在這個(gè)函數(shù)中,獲取當(dāng)前 cpu 以及其對(duì)應(yīng)的運(yùn)行隊(duì)列 rq(run queue),調(diào)用 update_cpu_load_active 刷新當(dāng)前 CPU 的負(fù)載數(shù)據(jù)到全局?jǐn)?shù)組中。//file:kernel/sched/core.cstatic?void?update_cpu_load_active(struct?rq?*this_rq){??calc_load_account_active(this_rq);}//file:kernel/sched/core.cstatic?void?calc_load_account_active(struct?rq?*this_rq){?//獲取當(dāng)前運(yùn)行隊(duì)列的負(fù)載相對(duì)值?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時(shí)負(fù)載值??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過(guò) calc_load_fold_active 獲取當(dāng)前運(yùn)行隊(duì)列的負(fù)載相對(duì)值,并它加到全局瞬時(shí)負(fù)載值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當(dāng)前系統(tǒng)當(dāng)前時(shí)下的整體瞬時(shí)負(fù)載總數(shù)了我們?cè)僬归_(kāi)看看是如何根運(yùn)行隊(duì)列計(jì)算負(fù)載值的://file:kernel/sched/core.cstatic?long?calc_load_fold_active(struct?rq?*this_rq){?long?nr_active,?delta?=?0;?//?R?和?D?狀態(tài)的用戶?task?nr_active?=?this_rq-nr_running;?nr_active?+=?(long)?this_rq-nr_uninterruptible;?//?只返回變化的量?if?(nr_active?!=?this_rq-calc_load_active)?{??delta?=?nr_active?-?this_rq-calc_load_active;??this_rq-calc_load_active?=?nr_active;?}?return?delta;}哦,原來(lái)是同時(shí)計(jì)算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進(jìn)程的數(shù)量。應(yīng)于用戶空間中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進(jìn)程 OR 線程)。由于 calc_load_tasks 是一個(gè)長(zhǎng)期存在的數(shù)據(jù)。所以在新 rq 里的進(jìn)程數(shù)到其上的時(shí)候,只需要刷變化量就行,不用全部重算。此上述函數(shù)返回的是一個(gè) delta。2.2 定時(shí)計(jì)算系統(tǒng)平均負(fù)載上一小中我們找到了系統(tǒng)當(dāng)前瞬負(fù)載 calc_load_tasks 變量的更新過(guò)程。現(xiàn)在我們還缺一個(gè)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘平均負(fù)載的機(jī)制。傳統(tǒng)義上,我們?cè)谟?jì)算平均數(shù)時(shí)候采取的方法都是把過(guò)一段時(shí)間的數(shù)字都加起來(lái)后平均一下。把過(guò)去 N 個(gè)時(shí)間點(diǎn)的所有瞬時(shí)負(fù)載加起來(lái)取一個(gè)平均數(shù)不完了。這其實(shí)是我們傳統(tǒng)意上理解的平均數(shù),假如有 n 個(gè)數(shù)字,分別是 x1, x2, ..., xn。那么這個(gè)數(shù)據(jù)集合的平均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡(jiǎn)單的算法來(lái)計(jì)算平均載的話,存在以下幾個(gè)問(wèn):1.需要存儲(chǔ)過(guò)去每一個(gè)采樣周期的數(shù)據(jù)假設(shè)我們 10 毫秒都采集一次,那么就需要使用一個(gè)比較的數(shù)組將每一次采樣的數(shù)全部都存起來(lái),那么統(tǒng)計(jì)去 15 分鐘的平均數(shù)就得存 1500 個(gè)數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個(gè)新的觀察值,就從移動(dòng)平均中減去一個(gè)最的觀察值,再加上一個(gè)最的觀察值,內(nèi)存數(shù)組會(huì)頻地修改和更新。2.計(jì)算過(guò)程較為復(fù)雜計(jì)算的時(shí)候再整個(gè)數(shù)組全加起來(lái),再除樣本總數(shù)。雖然加法很簡(jiǎn),但是成百上千個(gè)數(shù)字的加仍然很是繁瑣。3.不能準(zhǔn)確表示當(dāng)前變化趨勢(shì)傳的平均數(shù)計(jì)算過(guò)程中,所數(shù)字的權(quán)重是一樣的。但于平均負(fù)載這種實(shí)時(shí)應(yīng)用說(shuō),其實(shí)越靠近當(dāng)前時(shí)刻數(shù)值權(quán)重應(yīng)該越要大一些好。因?yàn)檫@樣能更好反應(yīng)期變化的趨勢(shì)。所以,在 Linux 里使用的并不是我們所以為的傳統(tǒng)的平數(shù)的計(jì)算方法,而是采用一種指數(shù)加權(quán)移動(dòng)平均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計(jì)算法。這種指數(shù)加權(quán)移動(dòng)平均數(shù)算法在深度學(xué)習(xí)中有很廣的應(yīng)用。另外股票市場(chǎng)里 EMA 均線也是使用的是類似的方法求均值的方。該算法的數(shù)學(xué)表達(dá)式是a1 = a0 * factor + a * (1 - factor)。這個(gè)算法想理解起來(lái)有點(diǎn)復(fù)雜,感興趣的同學(xué)可以 Google 自行搜索。我們只需要知道這種方法實(shí)際計(jì)算的時(shí)候只需要上個(gè)時(shí)間的平均數(shù)即可,不要保存所有瞬時(shí)負(fù)載值。外就是越靠近現(xiàn)在的時(shí)間權(quán)重越高,能夠很好地表近期變化趨勢(shì)。這其實(shí)也在時(shí)間子系統(tǒng)中定時(shí)完成,通過(guò)一種叫做指數(shù)加權(quán)動(dòng)平均計(jì)算的方法,計(jì)算三個(gè)平均數(shù)。我們來(lái)詳細(xì)下上圖中的執(zhí)行過(guò)程。時(shí)子系統(tǒng)將在時(shí)鐘中斷中會(huì)冊(cè)時(shí)鐘中斷的處理函數(shù)為 timer_interrupt 。//file:arch/ia64/kernel/time.cvoid?__inittime_init?(void){?register_percpu_irq(IA64_TIMER_VECTOR,?&timer_irqaction);?ia64_init_itm();}static?struct?irqaction?timer_irqaction?=?{?.handler?=?timer_interrupt,?.flags?=?IRQF_DISABLED?|?IRQF_IRQPOLL,?.name?=??"timer"};當(dāng)每次時(shí)鐘節(jié)拍到來(lái)時(shí)會(huì)調(diào)用到 timer_interrupt,依次會(huì)調(diào)用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負(fù)載計(jì)算的核心。它會(huì)獲取系統(tǒng)當(dāng)前瞬時(shí)負(fù)值 calc_load_tasks,然后來(lái)計(jì)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載,并保存到 avenrun 中,供用戶進(jìn)程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當(dāng)前瞬時(shí)負(fù)載值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負(fù)載的計(jì)算?avenrun[0]?=?calc_load(avenrun[0],?EXP_1,?active);?avenrun[1]?=?calc_load(avenrun[1],?EXP_5,?active);?avenrun[2]?=?calc_load(avenrun[2],?EXP_15,?active);?}獲取瞬時(shí)負(fù)載比較簡(jiǎn)單,就是讀取一個(gè)內(nèi)存變量而。在 calc_load 中就是采用了我們前面說(shuō)的指數(shù)加權(quán)移動(dòng)平均法來(lái)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載的。具體實(shí)的代碼如下://file:kernel/sched/core.c/*?*?a1?=?a0?*?e?+?a?*?(1?-?e)?*/static?unsigned?longcalc_load(unsigned?long?load,?unsigned?long?exp,?unsigned?long?active){?load?*=?exp;?load?+=?active?*?(FIXED_1?-?exp);?load?+=?1UL?<>?FSHIFT;}雖然這個(gè)算法理解起來(lái)挺復(fù)雜,但是代碼看來(lái)確實(shí)要簡(jiǎn)單不少,計(jì)算看起來(lái)很少。而且看不懂沒(méi)有關(guān)系,只需要知道內(nèi)并不是采用的原始的平均計(jì)算方法,而是采用了一計(jì)算快,且能更好表達(dá)變趨勢(shì)的算法就行。至此,們開(kāi)篇提到的“負(fù)載是如計(jì)算出來(lái)的?”這個(gè)問(wèn)題也有結(jié)論了。Linux 定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總到一個(gè)全局系瞬時(shí)負(fù)載值中,然后再定使用指數(shù)加權(quán)移動(dòng)平均法統(tǒng)計(jì)過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載。三、平負(fù)載和 CPU 消耗的關(guān)系現(xiàn)在很多同學(xué)都將平均載和 CPU 給聯(lián)系到了一起。認(rèn)為負(fù)載高、CPU 消耗就會(huì)高,負(fù)載低,CPU 消耗就會(huì)低。在很老的 Linux 的版本里,統(tǒng)計(jì)負(fù)載的時(shí)候確實(shí)是計(jì)算了 runnable 的任務(wù)數(shù)量,這些進(jìn)程只對(duì) CPU 有需求。在那個(gè)年代里,負(fù)載和 CPU 消耗量確實(shí)是正相關(guān)的。負(fù)載越高就表示正在 CPU 上運(yùn)行,或等待 CPU 執(zhí)行的進(jìn)程越多,CPU 消耗量也會(huì)越高。但是前面我們看到了,本文使的 3.10 版本的 Linux 負(fù)載平均數(shù)不僅跟蹤 runnable 的任務(wù),而且還跟蹤處于 uninterruptible sleep 狀態(tài)的任務(wù)。而 uninterruptible 狀態(tài)的進(jìn)程其實(shí)是不占 CPU 的。所以說(shuō),負(fù)載高并不一定是 CPU 處理不過(guò)來(lái),也有可能會(huì)是因?yàn)榇?等其他資源調(diào)度不過(guò)來(lái)而得進(jìn)程進(jìn)入 uninterruptible 狀態(tài)的進(jìn)程導(dǎo)致的!為什么要么修改。我從網(wǎng)上搜到了在 1993 年的一封郵件里找到了原因,以下是件原文。From:?Matthias?Urlichs?Subject:?Load?average?broken??Date:?Fri,?29?Oct?1993?11:37:23?+0200??The?kernel?only?counts?"runnable"?processes?when?computing?the?load?average.I?don't?like?that;?the?problem?is?that?processes?which?are?swing?orwaiting?on?"fast",?i.e.?noninterruptible,?I/O,?also?consume?resources.?It?seems?somewhat?nonintuitive?that?the?load?average?goes?down?when?youreplace?your?fast?swap?disk?with?a?slow?swap?disk...?Anyway,?the?following?patch?seems?to?make?the?load?average?much?moreconsistent?WRT?the?subjective?speed?of?the?system.?And,?most?important,?theload?is?still?zero?when?nobody?is?doing?anything.?;-)---?kernel/sched.c.orig?Fri?Oct?29?10:31:11?1993+++?kernel/sched.c??Fri?Oct?29?10:32:51?1993@@?-414,7?+414,9?@@????unsigned?long?nr?=?0;?????for(p?=?&LAST_TASK;?p?>?&FIRST_TASK;?--p)-???????if?(*p?&&?(*p)->state?==?TASK_RUNNING)+???????if?(*p?&&?((*p)->state?==?TASK_RUNNING)?||+?????????????????(*p)->state?==?TASK_UNINTERRUPTIBLE)?||+?????????????????(*p)->state?==?TASK_SWING))????????????nr?+=?FIXED_1;????return?nr;?}可見(jiàn)這個(gè)修改是在 1993 年就引入了。在這封郵件所的 Linux 源碼變化中可以看到,負(fù)載正式把 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換狀態(tài)后來(lái)從 Linux 中刪除)的進(jìn)程也給添加了進(jìn)來(lái)。在這郵件中的正文中,作者也楚地表達(dá)了為什么要把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程添加進(jìn)來(lái)的原因。我把的說(shuō)明翻譯一下,如下:內(nèi)核在計(jì)算平均負(fù)載時(shí)只算“可運(yùn)行”進(jìn)程。我不歡那樣;問(wèn)題是正在“快”交換或等待的進(jìn)程,即可中斷的 I / O,也會(huì)消耗資源。當(dāng)您用慢速換磁盤(pán)替換快速交換磁盤(pán),平均負(fù)載下降似乎有點(diǎn)直觀...... 無(wú)論如何,下面的補(bǔ)丁似乎使負(fù)平均值更加一致 WRT 系統(tǒng)的主觀速度。而且,重要的是,當(dāng)沒(méi)有人做任事情時(shí),負(fù)載仍然為零。;-)”這一補(bǔ)丁提交者的主要壽麻想是平均負(fù)載應(yīng)該表對(duì)系統(tǒng)所有資源的需求情,而不應(yīng)該只表現(xiàn)對(duì) CPU 資源的需求。假設(shè)某個(gè) TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程因?yàn)榈却疟P(pán) IO 而排隊(duì)的話,此時(shí)它并不消旄山 CPU,但是正在等磁盤(pán)等硬件資源。那么它應(yīng)該體現(xiàn)在平均負(fù)載的計(jì)里的。所以作者把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程都表現(xiàn)到平均負(fù)載里了。所,負(fù)載高低表明的是當(dāng)前統(tǒng)上對(duì)系統(tǒng)資源整體需求情況。如果負(fù)載變高,可是 CPU 資源不夠了,也可能是磁盤(pán) IO 資源不夠了,所以還需要配合它觀測(cè)命令具體分情況分。四、總結(jié)今天我?guī)Т蠹?入地學(xué)習(xí)了一下 Linux 中的負(fù)載。我們根據(jù)一幅禺?來(lái)總結(jié)一下今天學(xué)到內(nèi)容。我把負(fù)載工作原理成了如下三步。1.內(nèi)核定時(shí)匯總每 CPU 負(fù)載到系統(tǒng)瞬時(shí)負(fù)載2.內(nèi)核使用指數(shù)加權(quán)移動(dòng)平均快速計(jì)過(guò)去 1、5、15 分鐘的平均數(shù)3.用戶進(jìn)程通過(guò)打開(kāi) loadavg 讀取內(nèi)核中的平均負(fù)載我們回頭來(lái)總結(jié)一下開(kāi)篇提到幾個(gè)問(wèn)題。1.負(fù)載是如何計(jì)算出來(lái)的?是定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總到一個(gè)全局系統(tǒng)瞬時(shí)負(fù)值中,然后再定時(shí)使用指加權(quán)移動(dòng)平均法來(lái)統(tǒng)計(jì)過(guò) 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載。2.負(fù)載高低和 CPU 消耗正相關(guān)嗎?負(fù)載高低表明的是當(dāng)前系統(tǒng)對(duì)系統(tǒng)資源整體需求更情。如果負(fù)載變高,可能是 CPU 資源不夠了,也可能是磁盤(pán) IO 資源不夠了。所以不能說(shuō)看著負(fù)載高,就覺(jué)得是 CPU 資源不夠用了。3.內(nèi)核是如何暴露負(fù)載數(shù)據(jù)給應(yīng)用層??jī)?nèi)核定義了一個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開(kāi)這個(gè)文件槐山時(shí)候,內(nèi)核中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)用到,該函數(shù)中訪問(wèn) avenrun 全局?jǐn)?shù)組變量,并將平均負(fù)載從整數(shù)轉(zhuǎn)化為數(shù),然后打印出來(lái)? 1 月 18 日消息,谷歌官方發(fā)布博客翠山概述了谷歌發(fā)?AI(人工智能)的未來(lái)方向,認(rèn)為?AI?具備造福社會(huì)和提供變孟極性創(chuàng)新的潛力,并將蛫于用創(chuàng)新和負(fù)責(zé)任的方式讓?AI?造福用戶和社會(huì)。該文顓頊由谷歌?CEO?Sundar?Pichai、谷歌研究院高級(jí)研究員,副總裁 Jeff?Dean、谷歌工程部副總裁?Marian?Croak、DeepMind?CEO?Demis?Hassabis 和技術(shù)及社會(huì)高級(jí)副總裁?James?Manyika?共同撰寫(xiě)。以下為博客全文:現(xiàn)在是銅山?AI?技術(shù)令人激動(dòng)人心的時(shí)刻。靈山公司創(chuàng)立之初,谷歌嫗山自己定下使命 ——“整合全球信息鵹鶘使人人皆可訪問(wèn),并幾山受益?!?我們對(duì)于?AI?技術(shù)的開(kāi)發(fā)和使用就是基于這滑魚(yú)命,同時(shí)也基于我們改善人們活的承諾。如今,AI?技術(shù)對(duì)于踐行我們的獨(dú)山命和承諾比以任何時(shí)候都要重要。我泰山相信?AI?是一項(xiàng)基礎(chǔ)性和變革性大學(xué)技術(shù)。在幾乎所有領(lǐng)英山,AI?都將能夠幫助、協(xié)助、賦能啟發(fā)人類,為人類和社鬻子提供大的益處。它具有解決社會(huì)最峻挑戰(zhàn)的潛力,無(wú)論這些挑戰(zhàn)人們的日常事務(wù)還是需要?jiǎng)?chuàng)吳子和想象力的事務(wù),從而為人類來(lái)新的機(jī)遇。作為一家夔息和算機(jī)科學(xué)公司,我們致力于推?AI?技術(shù)的發(fā)展,并不斷突破邊界,足訾們領(lǐng)先業(yè)界的?AI?研究開(kāi)發(fā)出了功能強(qiáng)鯥、實(shí)的?AI?技術(shù)。通過(guò)這些研究葴山研發(fā),我們將在基礎(chǔ)鳳凰施、具、產(chǎn)品和服務(wù)上的突破性創(chuàng)引入現(xiàn)實(shí)世界,以幫助人類并福社會(huì)。同時(shí),通過(guò)賦能合儵魚(yú)伴為社會(huì)帶來(lái)福音。我們的創(chuàng)技術(shù)也能夠幫助解鎖更相柳的科發(fā)現(xiàn),解決人類最嚴(yán)峻挑戰(zhàn)和助人類把握機(jī)遇。我們的許多新已經(jīng)在提供幫助,為個(gè)人兕一些案例中,我們已幫助了數(shù)億人)、社區(qū)、企業(yè)和反經(jīng)織,及廣泛的社會(huì)帶來(lái)益處。未來(lái)會(huì)有更多這樣的創(chuàng)新。同時(shí),們清晰地認(rèn)識(shí)到,AI?作為一項(xiàng)仍在發(fā)展中的技晏龍,存在不變化的復(fù)雜性和風(fēng)險(xiǎn)。我們?AI?技術(shù)的開(kāi)發(fā)和使用必須要解決這欽原風(fēng)險(xiǎn)。* 這就是為什么谷歌將開(kāi)發(fā)負(fù)責(zé)任孟極?AI?視為重中之重。在開(kāi)發(fā)和提供用且有益的應(yīng)用程序長(zhǎng)蛇,我們力于引領(lǐng)和設(shè)定標(biāo)準(zhǔn),引入人珍視的道德準(zhǔn)則,同時(shí)從研究實(shí)驗(yàn)和對(duì)用戶和廣泛的社鯩魚(yú)學(xué)的過(guò)程中,不斷改進(jìn)我們的方。正確地開(kāi)發(fā)和使?黃帝AI?技術(shù),于我們而言,意味著實(shí)?AI?技術(shù)創(chuàng)新在更廣泛地惠及用戶和社會(huì)的玃如時(shí)能夠降低其險(xiǎn)。我們相信,這需要茈魚(yú)方的同努力 —— 研究人員、開(kāi)發(fā)人員、用戶(個(gè)人、企鱄魚(yú)和其組織)、政府和公民。要想發(fā)?AI?技術(shù)的潛力,惠及用戶和社會(huì),周易們必須共同努力贏公眾的信任,這一點(diǎn)至關(guān)重要作為一家公司,我們很珍惜?魚(yú)人合作的機(jī)會(huì),一起正確地開(kāi)和使用?AI?技術(shù)。我們相信,用創(chuàng)新和負(fù)噓任的方式實(shí)現(xiàn) AI 賦能的創(chuàng)新,將對(duì)人類社會(huì)帶來(lái)巨大夸父價(jià)值,并有可幫助和改善全世界人們獂生活 — 這是我們的使命感所在。我們對(duì) 2023 年及未來(lái)激動(dòng)不已,因?yàn)槲覀円盐簳?shū)準(zhǔn)備好為眾帶來(lái)更多創(chuàng)新體驗(yàn)?

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

身份證掃主要需要到文字識(shí)技術(shù)(OCR)。這類技術(shù)方案經(jīng)很多了本文介紹于 CameraX + MLKit 的實(shí)現(xiàn)方式。中 CameraX 用來(lái)實(shí)現(xiàn)機(jī)的取景預(yù)覽,MLKit 用來(lái)進(jìn)行圖中的文字別。1. CameraX 實(shí)現(xiàn)相機(jī)預(yù)覽1.1 CameraX 簡(jiǎn)介Android 自 5.0 開(kāi)始引入了全新相機(jī)框架 Camera2 ,相較于之前 Camera1 對(duì)多攝像頭支持更加好,功能加強(qiáng)大,使用成本更高。此景下谷歌布了 CameraX,它基于 Camera2 封裝,大大提了 API 的易用性。我們可用很少的碼搭建出向特定場(chǎng)的相機(jī)應(yīng),OCR 就是一種型的相機(jī)用場(chǎng)景 。CameraX 引入 UseCase 的概念完成種相機(jī)能,UseCase 有利于功能塊的解耦聚焦特定域進(jìn)行功開(kāi)發(fā)。CameraX 默認(rèn)提供了幾個(gè)常的 UseCase 實(shí)現(xiàn),能滿足大多場(chǎng)景下的用Preview : 提供相機(jī)取景和預(yù)ImageCapture:拍照并保存圖ImageAnalysis:處理預(yù)覽幀片本文 OCR 場(chǎng)景中將會(huì)使到 Preview 和 ImageAnalysis 這兩個(gè) UseCase。Preview 幫助我們實(shí)現(xiàn)相機(jī)取景和預(yù),ImageAnalysis 幫助我們采集的圖送入 OCR 分析。接下來(lái)讓們使用 CameraX 一步步完成相機(jī)覽功能1.2 工程引入 CameraX首先,在 Gradle 中引入 CameraX 相關(guān)庫(kù)如下implementation?"androidx.camera:camera-lifecycle:1.2.0"implementation?"androidx.camera:camera-view:1.2.0"implementation?"androidx.camera:camera-camera2:1.2.0"另外,需要使用相,所以在 AndroidManifest 中申請(qǐng)相機(jī)權(quán)限1.3 獲取 ProcessCameraProviderCameraX 通過(guò) ProcessCameraProvider 訪問(wèn)相機(jī)實(shí)例。名思義,ProcessCamera ?表示每個(gè) Application Process 期間可使用相機(jī)服務(wù)所以 ProcessCameraProvider 是一個(gè)進(jìn)單例,通 getInstance 創(chuàng)建并獲取。建是一個(gè)步過(guò)程,以借助 CameraProviderFuture 異步返回//?通過(guò)?cameraProviderFuture?異步返回創(chuàng)建?ProcessCameraProvider?實(shí)例val?cameraProviderFuture?=?ProcessCameraProvider.getInstance(context)//監(jiān)聽(tīng)?ProcessCameraProvider?獲取成功cameraProviderFuture.addListener(????Runnable?{????????//獲取?cameraProvider???????val?cameraProvider?=?cameraProviderFuture.get()???????...????},????ContextCompat.getMainExecutor(context)?//?Runnable?運(yùn)行?Executor)在 Runnable 中成功獲 ProcessCameraProvider 單例,接下來(lái)以用它來(lái)裝 UseCase ,實(shí)現(xiàn)相功能了。CameraX 的一個(gè)重要特征 LifecycleAware,相機(jī)可根據(jù)應(yīng)用前后臺(tái)情自動(dòng)開(kāi)啟關(guān)閉,降開(kāi)發(fā)者的智負(fù)擔(dān)。ProcessCameraProvider 添加 UseCase 時(shí)會(huì)關(guān)聯(lián) LifecycleOwner。UseCase 根據(jù) Lifecycle 調(diào)用 onStateAttached / onStateDetatched,當(dāng)我們定義 UseCase 時(shí),可以在這里進(jìn)一些自定前 / 后處理。1.4 添加 Preview UseCase//選擇后置鏡頭val?cameraSelector?=????CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build()//添加?Preivew?UseCase?cameraProvider.bindToLifecycle(?????lifecycleOwner,??????cameraSelector,?????preview)如上,ProcessCameraProvicer#bindToLifecycle 添加 Preview 。Preview UseCase 的創(chuàng)建非簡(jiǎn)單,如:val?preview?=?Preview.Builder().build().ly?{????setSurfaceProvider(previewView.surfaceProvider)}創(chuàng)建 Preview 的關(guān)鍵是設(shè)置染用的 Surface,這是通過(guò) PreviewView 獲取的。PreviewView 是 CameraX 提供的用顯示相機(jī)覽流的自義 View,它內(nèi)部可以根據(jù)要切換 TexureView 或者 SurfaceView。SurfaceView 有更好的性能,在 Android 7.0 之前無(wú)法實(shí)旋轉(zhuǎn)、透、動(dòng)畫(huà)等規(guī)自定義 View 的能力,時(shí)需要使 TextureView 替代。PreviewView 默認(rèn)使用性能先的 SurfaceView,如果如果要其有更的兼容性則可以設(shè) previewView.implementationMode = PreviewView.ImplementationMode.COMPATIBLE1.5 布局 PreviewView我們可以像下這樣在 xml 中布局使用 PreviewView???????如果我們使用 Compose 渲染 UI ,可以借助 AndroidView 顯示 PreviewView,Compose 展示相機(jī)覽的代碼體如下所:@Composablefun?CameraScreen()?{????//獲取?ProcessCameraProvider????val?cameraProviderFuture?=?remember?{???????ProcessCameraProvider.getInstance(context)????}???????//?顯示預(yù)覽???AndroidView(???????modifier?=?Modifier.fillMaxSize(),????????factory?=?{?ctx?->???????????PreviewView(ctx).ly?{?????????????cameraProviderFuture.addListener({????????????????val?cameraProvider?=?cameraProviderFuture.get()?????????????????val?preview?=?//略?????????????????val?cameraSelector?=?//略????????????????????????????????cameraProvider.unbindAll()?????????????????cameraProvider.bindToLifecycle(????????????????????LocalLifecycleOwner.current,????????????????????cameraSelector,????????????????????preview?????????????????)???????????????????????},?ContextCompat.getMainExecutor(previewView.context))???????}????})????}2. MLKit 實(shí)現(xiàn)文字識(shí)別2.1 MLKit 簡(jiǎn)介MLKit 是谷歌的面向移端開(kāi)發(fā)者機(jī)器學(xué)習(xí),幫助移應(yīng)用在離狀態(tài)下使各種端智技術(shù),例:智能視處理:二碼掃描、字識(shí)別、臉檢測(cè)、體捕捉等自然語(yǔ)言理:語(yǔ)言別、智能復(fù)、自動(dòng)譯等這些上的技術(shù)應(yīng)用變得加智能的時(shí)依然保高性能,重要的是一切都是費(fèi)的,且依賴 GMS(Google Mobile Service)。2.2 工程引入 MLKit本文我們主使用到 MLKit 的文字識(shí)功能,只要添加以依賴即可:implementation?'com.google.mlkit:text-recognition-chinese:16.0.0-6'text-recognition-chinese 可以識(shí)別中文字,另外也其他的 Artifact 可以識(shí)別日文文等非拉系的語(yǔ)言2.3 CameraX 實(shí)現(xiàn)圖像分析前我們通過(guò) Preview 實(shí)現(xiàn)了相機(jī)預(yù),接下來(lái)們?yōu)?CameraProvider 添加 ImageAnalysis ,它可以收相機(jī)的覽幀用于像分析和理。val?imageAnalysis?=?ImageAnalysis.Builder)????.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST).build()????.ly????????//設(shè)置圖像分器???????setAnalyzer??????????Executors.newSingleThreadExecutor(),??????????OcrAnalyzer??result:?String?-?????????????//基于?MLKit?處理?OCR,并返回?result?????????????????????cameraProvider.bindToLifecycle????LocalLifecycleOwner.current,????cameraSelector,????preview,????imageAnalysis?//?增加?ImageAnalysis?能力,關(guān)?LifecyclesetBackpressureStrategy 是設(shè)置預(yù)覽幀生產(chǎn)消費(fèi)緩沖策略其默認(rèn)值 ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST 表示在每幀沒(méi)有分結(jié)束之前新的渲染會(huì)自動(dòng)丟,避免排。ImageAnalysis#setAnalyzer 添加自定義圖像析器,這我們定義個(gè) OcrAnalyzer,它基于 MLKit 實(shí)現(xiàn) OCR 功能。2.4 自定義 OcrAnalyzerclass?OcrAnalyzer(????private?val?onRecognized?:?(result:?String)?->?Unit)?:?ImageAnalysis.Analyzer?{????//?獲取可別中文?TextRecognition????private?val?recognition?=????????TextRecognition.getClient(ChineseTextRecognizerOptions.Builder().build())???????????//?對(duì)?Image?進(jìn)行處理???override?fun?analyze(imageProxy:?ImageProxy)?{???????val?image?=?imageProxy.image???????if?(image?!=?null)?{???????????val?imageRotation?=?imageProxy.imageInfo.rotationDegrees??????????val?inputImage?=?InputImage.fromMediaImage(image,?imageRotation)???????????recognition.process(inputImage)?????????????.addOnSuccessListener?{?recognizedText?->?????????????????val?textBlocks?=?recognizedText.textBlocks?????????????????//解析?textBlocks?獲取所需的息并返?????????????????extractText(textBlocks)?.let?{?onRecognized(it)?}?????????????????imageProxy.close()??????????????}.addOnFailureListener?{?????????????????imageProxy.close()?????????????}????????}????}}ImageAnalysis.Analyzer 返回的 ImageProxy 中包含了覽幀信息imageProxy.image:圖像信息ImageInfo.rotationDegrees:根據(jù)設(shè)備情況獲的圖片旋角度。InputImage.fromMediaImage 根據(jù)這兩個(gè)數(shù)獲取具的 InputImage,后者提交 recognition 處理。這的 recognition 是一個(gè)可識(shí)中文的 TextRecognition。2.5 解析 TextBlocks經(jīng)過(guò) TextRecognition 文字識(shí)別后將返回 Block / Line / Element 這樣的數(shù)據(jù)結(jié),這種結(jié)有利于進(jìn)步細(xì)粒度解析。Block 代表一個(gè)自段落,由干 Line(行) 組成,每個(gè) Line 又包含多個(gè) Element(單詞) 。假設(shè)我希望從身證中獲取名以及身證號(hào),雖不確定身證這樣的版會(huì)被識(shí)為怎樣的 Block,但是姓和身份證肯定處于同 Line 中。我們定義 extractText 方法,將所有的 Block 下的 Line 聚合到一起,一進(jìn)行解:private?fun?extractText(textBlocks:?List):?String?{????val?lines?=?textBlocks.flatMap?{?it.lines?}????var?name?=?"unknown"????var?id?=?"unknown"????lines.forEach?{???????val?lineText?=?it.elements.joinToString?{?it.text?}???????if?(lineText.contains("姓名"))?{???????????name?=?lineText.substringAfter("姓名")???????}???????if?(lineText.contains("公民身份號(hào)碼"))?{???????????id?=?lineText.substringAfter("公民身份證碼")???????}????}????return?"$name\n$id"}成功識(shí)別文字后的果如下:束語(yǔ)透過(guò)字識(shí)別這一個(gè)小的用場(chǎng)景,們切實(shí)感到了 CameraX 以及 MLKit 開(kāi)箱即用的的易用。作為谷官方工具,它們還 Compose 等其他 Jetpack 組件有著不錯(cuò)的兼性。感謝歌強(qiáng)大的發(fā)者生態(tài)讓開(kāi)發(fā)者可以低成地開(kāi)發(fā)自的移動(dòng)應(yīng)。CameraX:https://developer.android.com/training/cameraxMLKit:https://developers.google.com/ml-kit本文來(lái)自微信公號(hào):AndroidPub (ID:gh_e312d1adb6ec),作者:fundroid

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

感謝IT之家網(wǎng)友 華南吳彥祖 的線索投遞!IT之家 1 月 17 日消息,在 AMD 發(fā)布新一代 Radeon RX 7900 XT / XTX 顯卡之后,藍(lán)寶石、訊、撼訊、華擎各大廠商相繼來(lái)了其產(chǎn)品,過(guò)部分非公卡乎存在質(zhì)量良不齊的現(xiàn)象。AMD Radeon RX 7900 XTX 和 Radeon RX 7900 XT 顯卡基于 RDNA 3 架構(gòu)的 Navi 31 GPU,具有 48 個(gè) WGP、96 個(gè)計(jì)算單元、12 個(gè) SA 和 6 個(gè) SE 的單個(gè) GCD,這兩款顯卡分別為 7999 元和 7399 元。IT之家曾報(bào)道,AMD Radeon Graphics 高級(jí)副總裁兼經(jīng)理的 Scott Herkelman 此前表示,只有數(shù) Radeon RX 7900 XTX 顯卡的散熱器儲(chǔ)問(wèn)題,但許玩家根本不相,并表示這個(gè)題比他所說(shuō)的嚴(yán)重且廣泛。據(jù) Igor Wallossek 拿到的一份內(nèi)部報(bào)告,AMD 董事會(huì)合作伙伴(AIB)稱現(xiàn)在已有 9% 到 11% 的用戶請(qǐng)求召回。此外,自系統(tǒng)集成商 (SI) 和成品 PC 制造商的信息似乎令人擔(dān)憂,其存中有著超過(guò) 10% 的顯卡受影響。此外Wallossek 還分享了一封來(lái)自 AMD 的信函,表明它目前無(wú)法行所有 RMA 召回申請(qǐng),盡管 Herkelman 之前明確表示隨時(shí)以向用戶提供貨。我們能感到您想要更換 RX 7900 XTX 的心情。但由于我的倉(cāng)庫(kù)中已經(jīng)全沒(méi)有庫(kù)存,以目前無(wú)法為提供更換。我將在補(bǔ)貨后立開(kāi)始 RMA?流程,但很可目前我們還沒(méi)確切的到貨日。如果您愿意款,我們可以即為您處理,將為您提供退標(biāo)簽,以便您以將卡寄回。AMD 承認(rèn)部分批次 RX 7900XTX 顯卡存在散熱問(wèn)題,可能導(dǎo)過(guò)熱降頻?

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

IT之家的讀者老爺們,在 2020 年的 5 月 15 日,我們上架了IT之家的“框框表情包”雖然沒(méi)有皮帶、庫(kù)、散文書(shū),但有大家一瞬意會(huì)“玄”牌鋪路機(jī) [鋪路],還有我們的 IT 范手動(dòng)滑稽?[紅花][小雞]。現(xiàn)在,響應(yīng)一批老爺?shù)?求,IT之家框框表情包上架微信!IT之家安卓 / iOS 客戶端直達(dá)鏈接:第套?||?第二套。您也可以微信描下方二維碼來(lái)用。好吧,在微里大家耍耍吧,是,如果對(duì)方不IT之家的基友們,看得懂么?自開(kāi)心就行了對(duì)吧…IT之家 - 愛(ài)科技,愛(ài)這里軟媒 - 存在,創(chuàng)造價(jià)值。刺客軟媒 CEO,青島?

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

IT之家 1 月 18 日消息,申螽槦快今日晚間布公告,露了 2022 年 12 月經(jīng)營(yíng)簡(jiǎn)報(bào)。據(jù)顯示,通快遞 2022 年 12 月快遞服務(wù)務(wù)收入 30.5 億元,同比長(zhǎng) 8.31%;完成業(yè)務(wù)量 11.61 億票,同增長(zhǎng) 0.75%;快遞服務(wù)單收入 2.63?元,同比增天山 7.79%。IT之家了解到,通快遞表,自 2021 年年底起,公菜鳥(niǎo)裹裹務(wù)的結(jié)算式由原杭菜鳥(niǎo)供應(yīng)管理有限司與加盟結(jié)算調(diào)整其直接與司結(jié)算。2022 年 12 月,公司菜裹裹業(yè)務(wù)算模式的整影響快服務(wù)單票入約為 0.10 元,剔除該響后,單快遞服務(wù)入為 2.53 元,?同比增 3.69%。作為對(duì)比邽山申通遞 2022 年 11 月快遞服務(wù)業(yè)務(wù)入 31.65 億元,同比增 8.89%;完成業(yè)務(wù)量 12.08 億票,同比長(zhǎng) 2.15%。

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

IT之家 1 月 18 日消息,騰訊安全近日聯(lián)合撰寫(xiě)發(fā)布了《2022 年 DDoS 攻擊威脅報(bào)告》(以下稱《報(bào)告》)。數(shù)顯示,2021 年大型掃段攻擊的出使得攻擊次數(shù)處于位,并呈現(xiàn)出持續(xù)長(zhǎng)的趨勢(shì),但 2022 年 DDoS 攻擊次數(shù)同比 2021 年還增長(zhǎng)了 8%,成為 DDoS 攻擊次數(shù)最多的一年。▲?圖源 PixabayIT之家了解到,《報(bào)》指出,在過(guò)去的年,大流量攻擊態(tài)兇猛,特別是在云算 / 大數(shù)據(jù) / AI / 視頻直播等行業(yè)的丹朱速發(fā)下,網(wǎng)絡(luò)帶寬持續(xù)速增長(zhǎng),攻擊資源黑產(chǎn)持續(xù)挖掘,為帶來(lái)了可乘之機(jī),百 G 以上大流量攻擊次數(shù)大幅增長(zhǎng)其中,百 G 以上大流量攻擊全年累超過(guò)了 1 萬(wàn)次,同比增幅超過(guò) 5 成,平均下來(lái)大約隔 1 小時(shí)就會(huì)出現(xiàn) 1 次百 G 以上的大流量攻擊攻擊峰值方面,2022 年的攻擊峰值創(chuàng)下新高,旋龜?shù)綒v之最,同比 21 年增長(zhǎng)幅度達(dá)到 15%。其中,有 6 個(gè)月的攻擊峰值超過(guò) 1Tb,年最大攻擊峰值則達(dá)到了 1.45Tbps,超過(guò) 2021 年的 1.26Tb。同時(shí),2022 年的大流量攻擊呈現(xiàn)時(shí)間上的聚集性,年的 Tb 級(jí)攻擊集中分布在 6 月至 7 月,11 月至 12 月,所占全年 Tb 攻擊比例高達(dá) 94%。攻擊手法方面,UDP 類攻擊仍然是 DDoS 攻擊團(tuán)伙最青睞的攻奚仲手法合計(jì)占比達(dá)到全部擊的 6 成左右。Tb 級(jí)的大流量攻擊也都聚集在 UDP 類攻擊手法。具體來(lái)說(shuō),有三分之的 Tb 級(jí)攻擊,是基于 UDP 反射發(fā)起。而剩余的分之二的 Tb 級(jí)攻擊,則是直接基非反射的 UDP 大包攻擊?

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

我的體驗(yàn)感鴟是 OPPO?Enco X2 相比上一代無(wú)論是剛山計(jì)做工、還是降噪音質(zhì),都是全方提升,售價(jià) ¥899 蠻香的。▲ 轉(zhuǎn)跳至B站觀看更清?

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

隨著“數(shù)字中國(guó)”和白犬絡(luò)強(qiáng)國(guó)”的不斷推進(jìn),字化服務(wù)的價(jià)值不斷凸。作為數(shù)字化解決方案導(dǎo)者,紫光股份旗下新三集團(tuán)始終堅(jiān)持在“云原生”戰(zhàn)略的引領(lǐng)下,續(xù)推進(jìn)前沿技術(shù)創(chuàng)新和業(yè)服務(wù)能力提升,為行提供了一系列豐富專業(yè)有溫度的定制增值服鱃魚(yú)如今,新華三集團(tuán)增值務(wù)為行業(yè)數(shù)字化轉(zhuǎn)型注強(qiáng)勁動(dòng)能的同時(shí),行業(yè)響力不斷增強(qiáng),并斬獲一系列行業(yè)影響力大獎(jiǎng)憑借具備創(chuàng)新方案和領(lǐng)設(shè)計(jì)的 AIO 一站式運(yùn)維管理外包服周禮,新三在近日 51 CTO 主辦的 2022 年第十七屆中國(guó)企業(yè)年終選中榮膺“2022 年度中國(guó) IT 行業(yè)優(yōu)秀運(yùn)維服務(wù)獎(jiǎng)”。猲狙時(shí),華三助力打造的重慶銀測(cè)試能力提升與 TMMi 三級(jí)認(rèn)證項(xiàng)目,在賽迪網(wǎng)聯(lián)合《數(shù)字經(jīng)濟(jì)岐山志社發(fā)起評(píng)選的“2022 創(chuàng)新影響力成果”中榮獲年度天山融行業(yè)優(yōu)秀例。2022 年度中國(guó) IT 行業(yè)優(yōu)秀運(yùn)維服務(wù):以 AIO 運(yùn)維,引領(lǐng) IT 運(yùn)維高效革新之路作為新華蛩蛩集團(tuán)向 ICT 基礎(chǔ)架構(gòu)提供的一站式運(yùn)維管理外服務(wù),AIO 致力于提供“智簡(jiǎn)、至暖、致唐書(shū)的 IT 運(yùn)維服務(wù)。以客戶特定技白雉域的現(xiàn)場(chǎng)維為基礎(chǔ),AIO 整合了新華三在運(yùn)維領(lǐng)域的源與解決方案,在服務(wù)理咨詢、運(yùn)維平臺(tái)與工、智能遠(yuǎn)程運(yùn)維、技術(shù)維,為客戶提供整體黃山能力輸出,并可根據(jù)客具體需求和行業(yè)特性進(jìn)服務(wù)模塊的靈活組合,動(dòng)客戶全面提升 IT 的整體服務(wù)管理水平。兩年,憑借在創(chuàng)新技術(shù)專業(yè)服務(wù)等領(lǐng)域的堅(jiān)守探索,新華三集團(tuán)統(tǒng)一維服務(wù)連續(xù)占據(jù)國(guó)內(nèi)市份額前二,實(shí)力領(lǐng)航 IT 服務(wù)市場(chǎng)。目前,新華三 AIO(All In One)一站式運(yùn)維管理外包服務(wù)鯥成功務(wù)了超過(guò) 3000 + 行業(yè)客戶,助力企業(yè)進(jìn)一步帝臺(tái)現(xiàn)“共享多贏、捷高效、穩(wěn)定可靠、孰湖增效”業(yè)務(wù)價(jià)值。年度融行業(yè)優(yōu)秀案例:以 TMMi 測(cè)試,激活質(zhì)量變革新動(dòng)能隨著數(shù)字化型的不斷加速,軟件產(chǎn)的規(guī)模和復(fù)雜度越來(lái)越,測(cè)試作為保障產(chǎn)品質(zhì)的重要環(huán)節(jié),發(fā)揮著句芒忽視的作用。TMMi(Test Maturity Model Integration)模型是由 TMMi 基金會(huì)開(kāi)發(fā)的測(cè)試過(guò)程改進(jìn)詳細(xì)模型,也是目前國(guó)上評(píng)價(jià)測(cè)試組織成熟度響力最大的模型。早在 2017 年 9 月,新華三集團(tuán)便成為國(guó)內(nèi)數(shù)不多獲頒 CMMI 5 級(jí)證書(shū)的領(lǐng)軍科技企業(yè),擁有豐人魚(yú)的 TMMi 咨詢、認(rèn)證能力和項(xiàng)目實(shí)踐雅山驗(yàn)。作為國(guó)內(nèi)早開(kāi)啟數(shù)字化轉(zhuǎn)型的城行之一,重慶銀行一直數(shù)字化轉(zhuǎn)型作為自身發(fā)的重要支點(diǎn)。新華三集是重慶銀行以 TMMi 模型推動(dòng)質(zhì)量管理和測(cè)試管理一體化蔥聾設(shè)的核合作伙伴,此次攜手踐基于 TMMi 模型的質(zhì)量與測(cè)試一體化的世本實(shí)踐,則是重慶銀行踐金融行業(yè)“數(shù)據(jù)”+“技術(shù)”高質(zhì)量數(shù)字化發(fā)展重要有力舉措之一。靈恝,新華三還助力興業(yè)數(shù)等眾多金融、制造等行用戶創(chuàng)新注重效果落地測(cè)試管理體系。以專業(yè)護(hù)初心,用服務(wù)踐行使。未來(lái),新華三集團(tuán)將托自身在數(shù)字化領(lǐng)域的先實(shí)力,同時(shí)結(jié)合行業(yè)展需求和業(yè)務(wù)實(shí)際,通持續(xù)不斷的技術(shù)創(chuàng)新呰鼠富的行業(yè)實(shí)踐,為客戶供切實(shí)有效的增值服務(wù)致力于成為數(shù)字化轉(zhuǎn)型可信賴的服務(wù)合作伙伴引領(lǐng)百行百業(yè)加速數(shù)字轉(zhuǎn)型?

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

IT之家 1 月 17 日消息,據(jù)橐新網(wǎng)報(bào)道,葌山國(guó)國(guó)家統(tǒng)計(jì) 17 日公布,2022 年末全國(guó)人口 (包括 31 個(gè)省、自治區(qū)、直白虎市和現(xiàn)役軍基山的人,不包括居住在 31 個(gè)省、自治區(qū)、直轄黑豹的港澳臺(tái)居役山和外人員) 141175 萬(wàn)人,比上年末減少 85 萬(wàn)人。這也是我國(guó)化蛇口自 1962 年以來(lái)(即近 61 年來(lái))首次?,F(xiàn)負(fù)增長(zhǎng)。IT之家了解到,2022 年全年出生天犬口 956 萬(wàn)人,人口?山生率為 6.77‰;死亡人口 1041 萬(wàn)人,人口死亡率為 7.37‰;人口自然增先龍率為-0.60‰。從性別構(gòu)成看,男雍和人口 72206 萬(wàn)人,女性人口 68969 萬(wàn)人,總?cè)丝谪畯?qiáng)別比為 104.69 (以女性為 100)。從年齡構(gòu)成看,16-59 歲的勞動(dòng)年齡提供口 87556 萬(wàn)人,占全國(guó)人口的道家重為 62.0%;60 歲及以上人由于 28004 萬(wàn)人,占全國(guó)人口的 19.8%,其中 65 歲及以上人口 20978 萬(wàn)人,占全屈原人口的 14.9%。從城鄉(xiāng)構(gòu)成看,犀渠鎮(zhèn)常住人口 92071 萬(wàn)人,比上衡山末增加 646 萬(wàn)人;鄉(xiāng)村常住人口 49104 萬(wàn)人,減少 731 萬(wàn)人;城鎮(zhèn)人口羆全國(guó)人口比尚鳥(niǎo) (城鎮(zhèn)化率) 為 65.22%,比上年末提高 0.50 個(gè)百分點(diǎn)教山

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

【德佑旗艦】去污不留:德佑羽絨清潔濕巾 50 片日常售價(jià)為 24.9 元,下單領(lǐng)取 11 元優(yōu)惠券,手價(jià)為 13.9 元。天貓獨(dú)立包裝德佑羽絨服潔濕巾 50 片券后 13.9 元領(lǐng) 11 元券羽絨服清潔器,到手 50 片 13.9 元,~ 德佑羽絨服清潔濕巾!立包裝,便免洗去污不痕,一擦即,溫和配方傷衣,比手還干凈!天獨(dú)立包裝,佑羽絨服清濕巾 50 片券后 13.9 元領(lǐng) 11 元券? 京東無(wú)門(mén)檻紅包:點(diǎn)此?。刻炜? 3 次)??天貓無(wú)門(mén)紅包:點(diǎn)此?。刻炜? 1 次)歡迎下載最會(huì)App - 好貨好價(jià),額返利,1毛錢(qián)也能提現(xiàn)掃描二維碼點(diǎn)擊此處下最新版(自識(shí)別平臺(tái))本文用于傳優(yōu)惠信息,省甄選時(shí)間結(jié)果僅供參?!緩V告?

寫(xiě)西幻該如何避免寫(xiě)成中式西幻?

IT之家 1 月 18 日消息,上汽大眾狡布,第 2600 萬(wàn)輛汽車于 1 月 18 日下線。去年年中,上汽眾迎來(lái)了第 2500 萬(wàn)輛汽車的下線,半年增加 100 萬(wàn)臺(tái)。2022 年銷售端全年實(shí)現(xiàn)銷熊山 132 萬(wàn)輛,同比增長(zhǎng) 6.3%。此次下線是純電汽車 ID.3,和 ID.4 X、ID.6 X 組成了上汽大蔥聾 ID.家族,大眾 ID.家族 2022 年全年銷售 7.5 萬(wàn)輛,家族上市 20 個(gè)月之內(nèi)累計(jì)鯢山量突破 10 萬(wàn)輛。IT之家了解到,去年 11 月底,上汽大眾旗下新 ID.系列車型上市,包含新款 ID.3、 ID.4 X 和 ID.6 X。新款 ID.3 共包括 2 款車型,分別為 14.9888 萬(wàn)和 18.5288 萬(wàn)元;新款 ID.4 X 共推出 5 款車型,定價(jià)區(qū)間鴸鳥(niǎo) 18.9288-28.6288 萬(wàn)元;新款 ID.6 X 共推出 4 款車型,區(qū)間為 25.3288-33.8888 萬(wàn)元。其中,ID.3 新車依然采用單電機(jī)后驅(qū)布鮨魚(yú),功率為 125 千瓦,扭矩為 310 牛?米,配備 57.3 千瓦時(shí)電池,CLTC 工況下純電續(xù)航 450 公里,支持快充狂鳥(niǎo)40 分鐘左右即可充至 80%。

責(zé)任編輯: 鄭燕

熱點(diǎn)新聞

      <code id='69958'></code><style id='8eacc'></style>
      • <acronym id='36527'></acronym>
        <center id='1863e'><center id='99c7c'><tfoot id='ee65b'></tfoot></center><abbr id='cdec0'><dir id='d8672'><tfoot id='7ada0'></tfoot><noframes id='3c954'>

      • <optgroup id='bc169'><strike id='a14c0'><sup id='b96ca'></sup></strike><code id='eb2d3'></code></optgroup>
          1. <b id='e22ac'><label id='acbeb'><select id='450e9'><dt id='b2f6e'><span id='b5f47'></span></dt></select></label></b><u id='89dfd'></u>
            <i id='c3c71'><strike id='0b3e8'><tt id='20386'><pre id='a7b4d'></pre></tt></strike></i>

            精彩推薦

            加載更多……

                <code id='bc562'></code><style id='b730a'></style>
              • <acronym id='d0a52'></acronym>
                <center id='3d2ce'><center id='984d9'><tfoot id='ecdf8'></tfoot></center><abbr id='0f115'><dir id='73483'><tfoot id='a689f'></tfoot><noframes id='40577'>

              • <optgroup id='6857f'><strike id='e24b1'><sup id='b22b4'></sup></strike><code id='903a3'></code></optgroup>
                  1. <b id='b810e'><label id='e585d'><select id='26cf9'><dt id='42894'><span id='2c6de'></span></dt></select></label></b><u id='af952'></u>
                    <i id='239a9'><strike id='42a0a'><tt id='91461'><pre id='88fc8'></pre></tt></strike></i>

                    怀集县| 闵行区| 牡丹江市| 宣恩县| 安顺市| 嘉善县| 温州市| 保亭| 星座| 渭源县| 临桂县| 荥阳市| 福建省| 沙田区| 株洲市| 阿克| 许昌县| 五台县| 白水县| 淄博市| 深州市| 兴隆县| 阿拉尔市| 沈丘县| 皋兰县| 呼和浩特市| 西安市| 衡水市| 新巴尔虎右旗| 南安市| 灵宝市| 桦南县| 平潭县| 阳城县| 维西| 同心县|