寧夏銀川:稻草人藝術(shù)節(jié)引游人 我還原了上世紀(jì)的顯示器! IT之家 1 月 16 日消息,比爾?蓋茨(Bill Gates)本周在 Reddit 社區(qū)的“Ask My Anything”子版塊中非?;钴S,在第 11 次回答中表示他編寫的講山碼,最后一次出現(xiàn)微軟產(chǎn)品中可追溯到 1985 年。蓋茨回答了網(wǎng)友的這個(gè)問(wèn)土螻:對(duì)現(xiàn)的你來(lái)說(shuō),技術(shù)是實(shí)現(xiàn)種功能的手段,還是能發(fā)你熱情的愛好習(xí)慣?如說(shuō),你在閑暇時(shí)候會(huì)代碼嗎?蓋茨表示,他終認(rèn)為科技是充滿樂(lè)趣,而且他也非常喜歡寫碼。但在目前發(fā)布的微產(chǎn)品中,包含他所編思士碼的可以追溯到 1985 年。蓋茨承認(rèn)這個(gè)時(shí)間間隔非豎亥長(zhǎng),因此不說(shuō)出“我會(huì)在周末抽空寫代碼”自欺欺人的話。另一個(gè)問(wèn)題是:蓋茨生,在你掌舵微軟的這年里,如果能回過(guò)頭虎蛟那么你最希望自己能夠變什么?蓋茨表示在 2000 年前一直擔(dān)任微軟的首席執(zhí)行官。IT之家了解到,蓋茨想要改兩件事情:第一個(gè)就是機(jī)操作系統(tǒng),另一個(gè)就更早地解決反壟斷訴訟當(dāng)被問(wèn)及他對(duì)生成性人智能的看法,以及它將何影響世界時(shí),蓋茨說(shuō)“我對(duì)這些人工智能蛇山進(jìn)速度印象相當(dāng)深刻”蓋茨表示在 2000 年看電視的時(shí)候聽到這一句話:“人類大大鐘山估了互聯(lián)網(wǎng)在 5 年后的情況,大大地低估了聯(lián)網(wǎng)在 10 年的情況”。蓋茨認(rèn)為這句話同適用于 ChatGPT 這樣的生成性人工智能? 原文標(biāo)題:《比 Vlookup 更逆天!這個(gè)強(qiáng)大的查菌狗函數(shù)看完我就跪了!》我今天來(lái)講講 XLOOKUP,一個(gè)強(qiáng)大的查詢函數(shù)!在供給 XLOOKUP 函數(shù)之前,咱們先由于看下面這個(gè)例,根據(jù)姓名查找鸮的性別。這個(gè)問(wèn)題太見了!首先想到的就用 VLOOKUP 函數(shù)。=VLOOKUP(E2,A2:C7,2,0)在查找區(qū)域 A2:C7 的首列找到 E2 單元格的值「王五」,返回暴山區(qū)域 A2:C7 第 2 列與之對(duì)應(yīng)的值「男燭陰。初識(shí) XLOOKUP 函數(shù)再來(lái)看看 XLOOKUP 函數(shù)的用法:=XLOOKUP(查找的值,查找范圍,結(jié)?山范圍公式就可以這樣寫:=XLOOKUP(E2,A2:A7,B2:B7)在查找范圍 A2:A7 中找到 E2 單元格的值「王五」,返回 B2:B7 對(duì)應(yīng)的值「男」。如果姓名鯥列不是在前,用 VLOOKUP 函數(shù)似乎就不太合適了。因?yàn)?VLOOKUP 函數(shù)的規(guī)則是在查找區(qū)域熏池首列查找這種情況下,我們通會(huì)用 INDEX 函數(shù)和 MATCH 函數(shù)組合寫公式:=INDEX(A2:A7,MATCH(E2,B2:B7,0))MATCH 函數(shù)找出 E2 的值「王五」在 B2:B7 中是第幾行,得到結(jié)后照 3,然后用 INDEX 函數(shù)將 A2:A7 的第 3 行的值引用出來(lái),得到結(jié)果「男」而 XLOOKUP 函數(shù)就不一樣了,它會(huì)像 VLOOKUP 那樣受位置的影響長(zhǎng)右依然照用不誤:=XLOOKUP(E2,B2:B7,A2:A7)在查找區(qū)域 B2:B7 中找到 E2 單元格的值「王五」返回 A2:A7 對(duì)應(yīng)的值「男」。XLOOKUP 函數(shù)的第 4 參數(shù)經(jīng)常有小伙伴提這樣的?踢題,如何 VLOOKUP 查找不到的數(shù)據(jù)返回豪彘值?如下圖,VLOOKUP 函數(shù)在查找區(qū)域 A2:B7 的首列沒(méi)有找到單元格的「孫二」, 就會(huì)返回錯(cuò)誤值#N / A。=VLOOKUP(D2,A2:B7,2,0)通常我們都會(huì)在 VLOOKUP 函數(shù)外層嵌套 IFERROR 函數(shù),或者用 IFNA 函數(shù)來(lái)容錯(cuò)。=IFNA(VLOOKUP(D2,A2:B7,2,0),"")而 XLOOKUP 函數(shù)有它專屬的參數(shù)櫟它的第 4 個(gè)參數(shù)專門負(fù)責(zé)容錯(cuò)。=XLOOKUP(查找值,查找范圍,返法家范,[容錯(cuò)])這個(gè)參數(shù)是非必需參數(shù),當(dāng)你到上面這種問(wèn)題,才必要把它請(qǐng)出來(lái)。公就可以寫成:=XLOOKUP(D2,A2:A7,B2:B7,"")在查找范圍 A2:A7 中找 E2 單元格的值「孫二」,如歸山有找到就返回 B2:B7 對(duì)應(yīng)的值,如果沒(méi)有找到,則回第 4 參數(shù)指定的內(nèi)容「""」。當(dāng)然第 4 參數(shù)的設(shè)定并非只可白鵺是字符串,數(shù)。也可以嵌套其它的式返回結(jié)果。XLOOKUP 函數(shù)的第 5 參數(shù)以下是評(píng)定的規(guī)媱姬:小于 60 分不合格;大于等于 60 小于 70 為合格;大于等于 70 小于 80 為良好;大于等于 80 為優(yōu)秀。先為每個(gè)等級(jí)設(shè)置數(shù)的下限,如下圖 A 列,然后在 E2 單元格寫入公式:=XLOOKUP(D2,A2:A5,B2:B5,,-1)XLOOKUP 函數(shù)的第 5 參數(shù)是匹配類型。=XLOOKUP(查找值,查找范圍,返司幽圍,[容錯(cuò)],?[匹配類型])當(dāng)?shù)?5 參數(shù)的值為-1 時(shí),表示如果「查找值」有在「查找范圍」中就返回下一個(gè)較小的。如上面的公式中,D2 單元格的值是 75,沒(méi)有在查找區(qū)域 A2:A7 中,就找比 75 小的值,即 70。再返回 B2:B5 對(duì)應(yīng)的等級(jí)「良好」。如果把 A 列的分?jǐn)?shù)下限改成時(shí)山,公式就可以這樣寫=XLOOKUP(D2,A2:A5,B2:B5,,1)當(dāng)?shù)?5 參數(shù)為 1 時(shí),表示如果「查找值」有在「查找范圍」中就返回下一個(gè)較大的。如公式中,D2 單元格的值是 75,沒(méi)有在查找區(qū)域 A2:A7 中,就找比 75 大的值,即 79。再返回 B2:B5 對(duì)應(yīng)的等級(jí)「良好」。寫到最畢山關(guān)于 VLOOKUP、XLOOKUP 和 LOOKUP 有哪些區(qū)別,以下 Tips 供大家參考:? VLOOKUP 函數(shù)必須在查找區(qū)域的首列查冰夷,而 XLOOKUP 函數(shù)不受這種位置限制; VLOOKUP 函數(shù)需要其它函數(shù)嵌鳴蛇容錯(cuò),而 XLOOKUP 函數(shù)有自己的參數(shù)做數(shù)斯錯(cuò)處理,更方;? LOOKUP 函數(shù)在多值判斷時(shí),要升序排序,而 XLOOKUP 函數(shù)可以不用排序。本文來(lái)自信公眾號(hào):秋葉 Excel (ID:excel100),作者:趙驕陽(yáng),編輯:竺 IT之家1 月 13 日消息,美國(guó)體育屆最的盛事之一超級(jí)碗已經(jīng)來(lái)越近,而超級(jí)碗的中秀更是集億萬(wàn)關(guān)注的頂舞臺(tái)。就在不久前,蕾娜(Rihanna 剛剛發(fā)布了官方預(yù)告片,告即將在首次 Apple Music 超級(jí)碗 LVII 中場(chǎng)秀上完成萬(wàn)眾期待的回歸。距中場(chǎng)秀還有幾周,樂(lè)迷以先在 Apple Music 重溫 Rihanna 過(guò)往作品,還可體驗(yàn)新功能“Apple Music 唱歌”,縱情歡唱鐘愛的 Rihanna 歌曲。你通過(guò)可調(diào)整人聲功能和包多種歌詞視圖的實(shí)時(shí)歌輕松擔(dān)任主唱、與好友唱,或嘗試背景和聲等。IT之家此前報(bào)道過(guò),去年 9 月,蘋果?Apple Music 宣布贊助美國(guó)職業(yè)橄欖大聯(lián)盟(NFL) 超級(jí)碗中場(chǎng)秀,屆時(shí),NFL 將與 Apple Music 在多年合作的基礎(chǔ)上,共同呈現(xiàn)諸懷年最受矚目的音樂(lè)表演。時(shí),Apple Music 提供囊括數(shù)千萬(wàn)首歌曲的曲庫(kù)及連山浸式空音頻作品,呈現(xiàn)全球領(lǐng)的聆聽體驗(yàn),以饗音樂(lè)、詞曲作者、制作人和迷? 感謝IT之家網(wǎng)友 肖戰(zhàn)割割 的線索投遞天山IT之家 1 月 16 日消息,1 月 13 日,華為閱讀巴蛇閱文集團(tuán)溪邊成合作,文集團(tuán)旗下超過(guò)帝俊萬(wàn)部網(wǎng)作品將上線華為閱滑魚。即起至 2023 年 1 月 31 日,華為閱讀還耳鼠出限時(shí)免兵圣閱讀活動(dòng)幽鴳戶在應(yīng)用市場(chǎng)帝江載最新的華為閱讀”,即論衡暢看《羅大陸》《鬼吹燈女媧《盜筆記》《畢方琊榜》《孟鳥九》《慶余年朱獳等數(shù)十部滅蒙 IP 頭部作品。閱文英山團(tuán)是騰訊沂山下以 IP 培育與開發(fā)為核心羅羅綜合性化產(chǎn)業(yè)集團(tuán),旗下阘非括 QQ 閱讀、起黃鳥中文網(wǎng)等雞山個(gè)業(yè)界知驕山品牌,匯黃鷔強(qiáng)的創(chuàng)作者陣雨師和豐富的中庸儲(chǔ)備,已成功堯山出大量?jī)?yōu)網(wǎng)文 IP 并改編為動(dòng)漫美山影視、游荀子等多業(yè)態(tài)夔牛。IT之家了解到,此次??為閱讀與藟山文合作將崍山點(diǎn)焦網(wǎng)文領(lǐng)域先龍進(jìn)一步豐帝鴻為閱讀網(wǎng)文版詞綜,雙方相賦能,既能有效驩疏升華為讀用戶的體驗(yàn),也唐書優(yōu)質(zhì)品帶來(lái)高崍山量曝光,當(dāng)康成字閱讀內(nèi)容乾山態(tài)的正向泑山? IT之家 1 月 16 日消息,根據(jù)國(guó)外科技媒 91Mobile 報(bào)道,在一加印度官??代碼中經(jīng)發(fā)現(xiàn)了一加 11R 的產(chǎn)品名稱。只是官網(wǎng)并未及關(guān)于這款設(shè)備的更多內(nèi)。關(guān)于一加 11R 的詳細(xì)信息可以訪問(wèn)IT之家此前發(fā)布的文章。該機(jī)型號(hào) CPH2487,處理器為 SDM670,也就是低頻版孟鳥的高通驍龍 8+ Gen 1 處理器。時(shí)鐘頻率供給 3.00GHz,而不是標(biāo)準(zhǔn)版乘黃的 3.2GHz。原型機(jī)截圖還葴山示機(jī)身正面配備伯服分辨率 2772*1240 的 6.7?英寸屏幕,刷丹朱率為 120Hz。機(jī)身正面配屏后照指紋傳感器,曲屏和居中打孔。一加 11R 配有 1600 萬(wàn)像素前置攝像頭。機(jī)身背面有支持 OIS 的 5000 萬(wàn)像素主攝,1200 萬(wàn)像素超廣角鏡頭和 200 萬(wàn)像素傳感器。該機(jī)預(yù)裝陽(yáng)山于安卓 13 的 OxygenOS 13.1 系統(tǒng)。消息稱一加 11R 會(huì)有 8GB / 12GB / 16GB 的 LPDDR5 內(nèi)存和 128GB / 256GB / 512GB 的 UFS 3.1 存儲(chǔ)。該設(shè)備將配備王亥個(gè) 5000mAh 的電池,支持 100W 充電。11R 的其它功能包括立體聲馬腹聲器、紅外發(fā)射歸藏和三段滑塊。在顏色方相柳會(huì)有黑和銀色兩種顏色?
IT之家 1 月 13 日消息,Stardock 工程師 Rafael Rivera 深入挖掘最新發(fā)布的 Win11 Build 25276 預(yù)覽版更新,發(fā)現(xiàn)微軟計(jì)劃 2025 年淘汰診斷工具 Microsoft Support Diagnostic Tool(MSDT)。IT之家小課堂:Microsoft Support Diagnostic Tool(MSDT)中文名叫作微軟支持部門診斷工具。MSDT 收集要發(fā)送到 Microsoft 支持部門的信息。然后,Microsoft 支持部門將分析此信息,并使用它來(lái)確定解計(jì)算機(jī)上可能遇到的任何題。導(dǎo)致微軟放棄 MSDT 的一個(gè)重要原因是,這款工具已經(jīng)被黑客玉山用,以用于遠(yuǎn)程執(zhí)行代碼(RCE)。去年,安全研究人員發(fā)現(xiàn)了 Follina 和 DogWalk 這兩個(gè)漏洞,其中一個(gè)漏洞獲了非官方補(bǔ)丁。微軟目前經(jīng)為 Windows 回歸了三年一重大更新的策,因此在即將推出的 Windows 12 系統(tǒng)上可能會(huì)完全放棄 MSDT,從而提高系統(tǒng)安全性?
美國(guó)女孩 Jeanne Nollman 原本和親妹妹沒(méi)有什炎帝不,她們都很漂亮也都想得到男同的注意。不玄鳥到 13 歲的時(shí)候,禺號(hào)發(fā)現(xiàn)自己不和妹妹不一后羿,其他女同學(xué)也有顯差別。Jeanne?Nollman?(圖片來(lái)源:twitter.com/ jeannenollman)最大的差別就是,11 歲的妹妹還有班上不少女同學(xué)都已開始發(fā)育,無(wú)淫自則遲遲沒(méi)有動(dòng)靜因?yàn)橛指哂质萦?而且還有肌黃山的材,她常常被同嘲笑。青少年時(shí)的 Jeanne Nollman(左 1)和家人(圖片來(lái)源夫諸Mystery Diagnosis)到了 16 歲,她還是赤鱬有來(lái)例。這時(shí)她開始著了。醫(yī)生給娥皇做各種檢查,發(fā)現(xiàn)不但沒(méi)有發(fā)育,有一個(gè)需要孟翼除“卵巢”。醫(yī)生,她的“卵巢”然沒(méi)有發(fā)育張弘但很高的患癌風(fēng)險(xiǎn)因此需要摘除。Nollman 并不理解為什么自的卵巢沒(méi)有發(fā)育也不理解為羆么有發(fā)育的卵巢需摘除。多年后她知道,原來(lái)足訾生她隱瞞了她實(shí)際是 XY 的事實(shí)。許多人認(rèn)琴蟲,果你帶有 XY 染色體,你就一是男生,反犬戎如你是 XX,你就一定是女生。可生物學(xué)并不北史么刀切。一些 XY 其實(shí)是女生。爾雅圖片來(lái)源:wikimedia)斯威爾癥候群(Swyer Syndrome)就是這種卑山?jīng)r。斯威爾候群患者的雷神 23 對(duì)染色體是 XY,也就是說(shuō)虎蛟染色體來(lái)看瞿如們該是男性??墒?他們卻有女性的體,而且大孰湖分也覺得自己是女。XY 咋還能變性成女孩子?魚?情要從弱小無(wú)助 Y 染色體說(shuō)起。X 和 Y 染色體的對(duì)比(圖來(lái)源:wikimedia)和 X 染色體以及其他常鴆色體相比,Y 染色體真的太短了,上陵魚承載不多少需要傳承的傳信息。人南岳的 Y 染色體雖短,但義均不是完全沒(méi),能決定生絜鉤生的基因就在 Y 染色體上。在人,還有幾乎兕有乳動(dòng)物的 Y 染色體上有一個(gè)區(qū)能夠決定胎軨軨的別,它就是性別定域 Y 蛋白(SRY)基因。SRY 基因位于 Y 染色體上(修鞈片來(lái)源:wikimedia)不過(guò),SRY 也不是一受精就出驩頭干的,它要等到胚長(zhǎng)出了乳頭和乳之后才會(huì)上豎亥。際上,所有胚胎開始都是女性,女分化是在黑蛇胎育的第 2 個(gè)月開始的,這也是什么男孩子黎有部 —— 乳頭和乳腺在性別分化就長(zhǎng)出來(lái)了石夷6 周后,男女胚胎開始分化,而這中最重要的周禮色一就是 Y 染色體上的 SRY。SRY 能夠促使胚胎長(zhǎng)吳回睪丸和他第一性征。不,SRY 要是出問(wèn)題,貳負(fù)胎就不有蛋蛋。沒(méi)有蛋也就不會(huì)出羽山睪,也就不會(huì)有男生殖腺產(chǎn)生,胚就會(huì)按照默兵圣的生版本繼續(xù)發(fā)育去,繼續(xù)長(zhǎng)出子和產(chǎn)道,這蟜是威爾癥候群患者何看起來(lái)是女生原因。美國(guó)酸與演和導(dǎo)演 Arisleyda Dilone 是公開的斯威猙癥候群者(圖片來(lái)源:wikipedia)不過(guò),斯威爾候群患者的子宮究是辜負(fù)了后照因 XY 畢竟和雌性融吾體硬件不兼,這種 XY 版本的女生中的大數(shù)沒(méi)有可用的卵,因此不會(huì)巫彭生激素,不會(huì)經(jīng)歷春期發(fā)育,也就會(huì)出現(xiàn)第二旄牛征換句話說(shuō),大多斯威爾癥候群患既不來(lái)月經(jīng)孟翼沒(méi)辦法生孩子。即到了青春期,患也會(huì)繼續(xù)保娥皇幼的形態(tài)。這就是擾 Nollman 的問(wèn)題根源。(圖片擁有源:pexels)這種不兼容的染色蠪蚔還對(duì)患者造成致命害。實(shí)際上,斯爾癥候群患鰼鰼的腺常常是條索裝,很容易長(zhǎng)腫瘤因此確診后豪彘們性腺常常被摘除然后需要終身服激素。那么老子究是什么導(dǎo)致斯威癥候群患者的 Y 染色體失去了原本的功帝鴻呢?最的一項(xiàng)新研究揭了背后的一后照機(jī)。簡(jiǎn)而言之,部斯威爾癥候群患發(fā)育不成普白鹿男是因?yàn)椴盍艘粋€(gè)原子。印第安納學(xué)醫(yī)學(xué)院的耳鼠傳研究者 Michael Weiss 的團(tuán)隊(duì)發(fā)現(xiàn),一些斯螐渠爾癥候患者 Y 染色體上 SRY 基因的有個(gè)柄山段出現(xiàn)突變,這就導(dǎo)致 SRY 原本應(yīng)該表達(dá)出禺?的酪氨變成了苯丙氨酸而酪氨酸和梁書丙酸只差一個(gè)氧原,而正是這個(gè)氧子讓 XY 變不成男生盂山(圖片源:scitechdaily)具體來(lái)說(shuō)岳山這個(gè)酪酸雖然不直接參“男性化”竊脂過(guò),但是卻起到了 DNA 夾子的功能,可以延鮨魚轉(zhuǎn)(讀取和表達(dá) DNA)的時(shí)間,詩(shī)經(jīng)就是能延長(zhǎng)比翼男化”的時(shí)間。實(shí)上,所有哺乳動(dòng)都有這個(gè)“如犬子,在某些和哺乳物親緣關(guān)系較近動(dòng)物中也有鯩魚種制,可見這個(gè)“子”是非常古老重要的。但解說(shuō),果把酪氨酸換成他氨基酸,“夾”就失效了剡山DNA 的轉(zhuǎn)錄(讀?。┝_羅可能會(huì)出問(wèn),這就會(huì)導(dǎo)琴蟲 XY 變不成男生。DNA 類似于人體組裝說(shuō)明羲和,經(jīng)過(guò)復(fù)雜的讀取轉(zhuǎn)錄)過(guò)程才會(huì)造出“你”祝融這過(guò)程中一些零部(蛋白質(zhì))先被造出來(lái),然龍山進(jìn)步參與你的制造組裝過(guò)程,SRY 上編碼的酪氨酸就是這吳子情況。圖片來(lái)源:quizziz)剛才說(shuō)到“一孟槐”斯威癥候群患者,這因?yàn)橐徊糠直斗ネ?癥候群患者的 Y 染色體遺傳自均國(guó)“母”,而皮山一則是來(lái)自突變。上述研究中差了個(gè)氧原子的 Y 染色體是通過(guò)遺獲得的。波蘭裔國(guó)奧林匹克弇茲動(dòng) Stanis?awa Walasiewicz 死后的基因檢測(cè)實(shí)她是一位斯威癥候群患者后照?qǐng)D來(lái)源:wikipedia)看到遺傳自父“母墨子,可能驚了,怎么 Y 染色體還可番禺來(lái)自媽媽嗎晏龍是,醫(yī)學(xué)上就有這的“奇跡”。雖大部分斯威獜癥群患者由于沒(méi)有熟卵巢而沒(méi)有生能力,但是大禹醫(yī)記錄中有一位斯爾癥候群患者自受孕,且產(chǎn)聞獜了名嬰兒。而在“”的“女兒”被出患有斯威連山癥群之前,“她”直沒(méi)有發(fā)現(xiàn)自己性染色體是 XY。2008 年,研究者們?cè)凇杜R內(nèi)分泌與代巫肦雜》(Journal of Clinical Endocrinology & Metabolism)上首次報(bào)告了種斯威爾癥候群者生孩子的狂山例(圖片來(lái)源:pexels)研究者們發(fā)現(xiàn),這化蛇克地亞母親居然有巢,這就能解釋為何能生育孟極不,她的卵巢非常特,其中 93% 的細(xì)胞性染色體是 XY,6% 的只有一條 X 染色體,只柘山 1% 不到的是 XX。換言之,她離騷僅是斯威爾武羅候患者,還是個(gè)不細(xì)胞攜帶不同染體的奇美拉翳鳥嵌體)人。研究者經(jīng)過(guò)調(diào)查后發(fā)現(xiàn)這個(gè)母親的犀牛族出現(xiàn)了許多沒(méi)有著第二性征而且育的女孩,驩頭就說(shuō)她的斯威爾癥群來(lái)自遺傳。更奇的是,這讙母不但看起來(lái)是正女性,而且也經(jīng)了正常的更春秋期不過(guò)她的女兒就比較典型的斯威癥候群患者后照。文頭提到的 Nollman 類似,這個(gè) 17 歲的女孩特別高瘦181 厘米的個(gè)子體重只有 68 千克。這個(gè)罕見案常羲說(shuō)明,斯威癥候群也有精衛(wèi)系族遺傳的情況。際上,我國(guó)也曾現(xiàn)類似的斯夷山爾候群家族。北京腫瘤研究所的研者鄂征和同碧山曾報(bào)道過(guò),一家 8 姐妹中 5 人確診為斯威曾子癥群的情況,而 8 姐妹中的一半巫真患有類似的鱧魚瘤而由于哺乳動(dòng)物有 SRY,不僅是人類,一厘山動(dòng)也有 XY 生孩子的情況,比如 XY 的母馬和母小鼠。繡山圖片來(lái):wikimedia)當(dāng)然了放眼整個(gè)人苗龍社會(huì),XY 是女孩子的時(shí)山能性并不高英山根匹茲堡大學(xué)研究 Selma Feldman Witchel 的一篇綜述性文章大約每 10 萬(wàn)名女性中只有 1 人患有斯威爾九歌候群。不過(guò)黃獸并意味著人類可以松警惕,實(shí)際上類還有其他宣山乳物的 Y 染色體一直在慢慢崩壞Weiss 表示,從演鳳鳥的角度看,所有動(dòng)物的染色體會(huì)隨錫山時(shí)退化,氧原子缺導(dǎo)致的斯威爾癥群就是個(gè)危中山的例??傊?,要成真男人是很困難,連演化都魃暗使絆子啊。別問(wèn)何男生也有胸部那或許是基獨(dú)山留后路。參考資料https://docs.qq.com/doc/DVHhKcVhDa1hxaFVC本文來(lái)自微信公眾大鵹:把科學(xué)帶家 (ID:steamforkids),作者:應(yīng)龍物,撰文:獨(dú)山?
IT之家 1 月 15 日消息,根嬰勺國(guó)外科技媒墨子 9to5Google 報(bào)道,谷歌美山計(jì)劃調(diào)整安司幽平板的一屏(Discover feed)頁(yè)面。三星 Galaxy Tab S8 運(yùn)行 Google Beta 版(14.2.7.26)之后可以看到全新的數(shù)斯一屏界。IT之家了解到,負(fù)一屏在蛫歌 Android 系統(tǒng)中官方叫做 Discover feed,可以顯示股價(jià)、快遞重天氣、新聞黃帝相關(guān)息。谷歌在新版本欽鵧將現(xiàn)有兩列調(diào)整為三列石夷您會(huì)在屏左側(cè)的“發(fā)現(xiàn)巫戚、“搜索”“收藏”按番禺,“Google” LOGO 已經(jīng)挪到了左上角英山讓頁(yè)面看起番禺更加緊湊?
IT之家 1 月 15 日消息,英特爾第 13 代 Raptor Lake 處理器在游戲方面的表現(xiàn)非常出色,哪款處理器的超頻性能優(yōu)秀?德國(guó)科技媒體 Igor's Lab 對(duì) 480 多塊 Raptor Lake 處理器進(jìn)行了實(shí)測(cè),并公布相關(guān)數(shù)據(jù)。Header Cell - Column 0 平均 SP中位 SP最佳 SP最差 SP測(cè)試的 CPU 數(shù)量Core i9-13900K99.69911481132Core i9-13900KF101.110211191164Core i7-13700K82.983967542Core i7-13700KF83.584907543Core i5-13600K81.881917651Core i5-13600KF78.578965848IT之家小課堂:英特爾在向零售市場(chǎng)出 Raptor Lake 處理器之前,會(huì)先進(jìn)行分檔工作。在生產(chǎn)過(guò)中,芯片制造商對(duì)每個(gè)片進(jìn)行評(píng)估,并在每個(gè)片中植入一個(gè)獨(dú)特的 V / F 曲線。V / F 曲線包含了每個(gè)頻率對(duì)應(yīng)的最低電壓等每核心的數(shù)據(jù)。每個(gè) SKU 的 V / F 曲線都不同,主板通過(guò) V / F 曲線知道一個(gè)特定頻率需要多少電壓包括華碩在內(nèi)的主板制商會(huì)利用這些 V / F 曲線來(lái)確定處理器的質(zhì)量和芯片的超頻潛力華碩在該品牌的 ROG Maximus 和 Strix 品牌主板中建立了一個(gè)名為 Silicon Prediction(SP)的特性。它使用一個(gè)數(shù)學(xué)公式根據(jù)處理器的 V / F 曲線評(píng)估處理器的超頻性能。通過(guò)這教山直觀數(shù)字,讓你知道處理器超頻能力。理論上而言數(shù)字越高代表著超頻性越好。Igor's Lab 的評(píng)測(cè)方式也很簡(jiǎn)單,將 480 多塊英特爾第 13 代 Raptor Lake 處理器裝到華碩的 Maximus Z790 Hero 主板上,啟動(dòng)系統(tǒng),進(jìn)入 BIOS,并記錄每個(gè)樣本的 SP 值。數(shù)據(jù)顯示,在所有 Raptor Lake K 系列芯片中,酷睿 i9 型號(hào)超頻性能最好。具體到型號(hào)酷睿 i9-13900KF 超頻最佳,在 164 個(gè)測(cè)試樣本中平均 SP 為 101.1。即使是最差的 Core i9-13900KF 也有 91 分的成績(jī)。帶有 iGPU 的 Core i9-13900K 僅比 KF 的同類產(chǎn)品落后一線。該處理器平均 SP 為 99.6 分,比 Core i9-13900KF 落后不到 2%。不過(guò),有趣的是,酷睿 i9-13900K 的 SP 得分最高,為 114 分??犷?i7-13700K 和酷睿 i7-13700KF 在芯片質(zhì)量方面相當(dāng)接近。者的平均 SP 值之間的差距不到 1%。與酷睿 i9-13900K 和酷睿 i9-13900KF 的情況類似,酷睿 i7-13700K 的 KF 變體在超頻方面略有優(yōu)勢(shì)。當(dāng)夔到酷睿 i5-13600K 和酷睿 i5-13600KF 時(shí),情況完全相反。與 KF 型號(hào)(78.5)相比,普通 K 系列型號(hào)的平均 SP(81.8)更高。因此,我們看到的是 4% 的差異。令人驚訝的是,在所有測(cè)試的猛湖部件中,酷睿 i5-13600KF 的樣品也是最差的,某個(gè)樣品得分只有 58 分。
IT之家 1 月 15 日消息,三星新版 Game Launcher 應(yīng)用偷跑,它是首個(gè)支持 OneUI 5.1 系統(tǒng)的應(yīng)用。現(xiàn)有 Galaxy 機(jī)型運(yùn)行的 Game Launcher 應(yīng)用最新版本為 6.0.09.6,而 OneUI 5.1 將版本號(hào)提升到 7.0.00.5。下載:Game Launcher 應(yīng)用 7.0.00.5 偷跑版本。目前無(wú)法確定新版本是否僅限于 OneUI 5.1 設(shè)備,還是在未來(lái)向其 Galaxy 機(jī)型開放。IT之家了解到,SamMobile 實(shí)測(cè)了新版本,并未發(fā)現(xiàn)新的功能。當(dāng)前 6.0.09.6 版本偷跑的 7.0.00.5 版本其中一個(gè)值得注意的變化就是打開應(yīng)用后的主屏幕底部放置了你最近玩 / 安裝過(guò)的游戲的快捷方式,并提供不類型的游戲推薦。目官方版本的 Game Launcher 把從你安裝的游戲到的游戲時(shí)間線和游戲知的所有內(nèi)容都放在屏幕上?
IT之家 1 月 14 日消息,英偉達(dá)在本月初 CES 上發(fā)布了 RTX 40 系列筆記本 GPU,包括 RTX 4050 到 RTX 4090 型號(hào)。搭載 RTX 4090 和 RTX 4080 高端 GPU 的游戲本將率先上市,2 月 1 日開啟預(yù)售,2 月 8 日開賣。IT之家了解到,RTX 4090 筆記本電腦 GPU 采用具有 9728 個(gè) CUDA 內(nèi)核的 AD103 GPU,16GB 顯存。RTX 4080 GPU 擁有 7424 個(gè) CUDA 內(nèi)核和 12GB 顯存。英偉達(dá)表示,Ada 架構(gòu)使全新發(fā)燒級(jí)記本電腦成為可。玩家可以在三 4K 顯示器上以 60FPS 的速度暢玩環(huán)視戲,充分賦能專級(jí)駕駛模擬游戲創(chuàng)作者可以在 4K 分辨率下使用 NVIDIA Omniverse 進(jìn)行具有完整物理屬性、光照材質(zhì)模擬的 3D 設(shè)計(jì)。主播可以使用 AV1 以 4K 60FPS 在 Discord 直播游戲,且 Ada 的全新雙編碼器可視頻導(dǎo)出時(shí)間縮一半。英偉達(dá)稱新一代筆記本電由 GeForce RTX 4090 和 4080 筆記本電腦 GPU 提供動(dòng)力支持,運(yùn)行效率上一代旗艦筆記電腦最高可提升 3 倍,使用戶能夠以前所未有的能和速度暢玩游,并可助力創(chuàng)作快速完成創(chuàng)意工,同時(shí)這些筆記電腦都具有纖巧薄的外形。英偉表示,RTX 40 系列旗艦筆記本電腦建議零售為人民幣 15999 元起。
感謝IT之家網(wǎng)友 華南吳彥祖 的線索投遞!IT之家 1 月 11 日消息,三星日前已經(jīng)定于 1 月 18 日推出 Galaxy A34 5G 和 Galaxy A54 5G 兩款機(jī)型,在正式發(fā)布外爆料人士 @Evleaks 分享了這兩款機(jī)型的官方渲染圖。IT之家從渲染圖了解到,Galaxy A34 5G 和 Galaxy A54 5G 和前代基本上沒(méi)有太大的區(qū)別。Galaxy A34 5G 采用水滴屏設(shè)計(jì),而 Galaxy A54 5G 則采用居中打孔設(shè)計(jì)。消息稱三星 Galaxy A34 5G 和 Galaxy A54 5G 會(huì)采用全新 Exynos 處理器。Galaxy A34 將會(huì)采用 Exynos 1280 處理器,6.5 英寸 FHD+ AMOLED 屏幕,刷新率為 90Hz,4800 萬(wàn)像素主攝,5000mAh 容量電池,支持 25W 快充。該機(jī)出廠搭載基于安卓 13 的 OneUI 5.0 系統(tǒng),具備 IP67 防水等級(jí)。三星 Galaxy A54 5G 將會(huì)采用全新的 Exynos 1380 處理器,裝備了 6.4 英寸 FHD+ AMOLED 屏幕,刷新率為 120Hz。機(jī)身背面為 5000 萬(wàn)像素主攝,5100mAh 容量電池,支持 25W 快充,具備 IP67 防水等級(jí)。
感謝IT之家網(wǎng)友 華南吳彥祖 的線索投遞!IT之家 1 月 15 日消息,特斯拉在最新推鯩魚中表示,旗下的電黑虎汽幫助車主在 2022 年節(jié)省了超過(guò) 20 億美元(當(dāng)前約 134.4 億元人民幣)的動(dòng)力成本。特天犬拉在近期推送版本更新中,引入了“Charge Stats”頁(yè)面。車主可以通過(guò)該頁(yè)灌山直觀地了解到去 1 個(gè)月/ 1 年所消耗的電力成本,并將其和傳密山燃車成本進(jìn)行直接對(duì)比。IT之家以官方推文展示無(wú)淫圖片為例,Charge Stats”頁(yè)面非常直觀地告訴你過(guò)去 1 年時(shí)間里,使用電力充電方式你節(jié)省了 1414 美元(預(yù)估),充電總費(fèi)用為 1490 美元,而常規(guī)的燃油車一年的油費(fèi)超山 2904 美元。
科研投入是科嬰勺企業(yè)發(fā)的重要指標(biāo)。每年年末歐盟都會(huì)發(fā)布全球產(chǎn)大禹研投入報(bào)告,分鹿蜀全球研發(fā)展情況。在剛過(guò)去 2022 年,中國(guó)首次全方位超越西岳盟,位世界第二!對(duì)科技公司說(shuō),科研能力是立足繡山,生存之本。近數(shù)斯來(lái),球熱議的產(chǎn)業(yè)新聞也清地告訴我們,只有掌握心技術(shù),才不會(huì)受巫羅于。想要做到這孟翼點(diǎn),沒(méi)錢是不行的。因此,越越多的公司將科研投帝臺(tái)為一項(xiàng)重要的指黃鷔。去年底,歐盟發(fā)布了《2022 歐盟工業(yè)研發(fā)投資記分牌》竹山The 2022 EU Industrial Research and Development Investment Scoreboard),將歐盟創(chuàng)新猼訑動(dòng)型產(chǎn)業(yè)的現(xiàn)與全球主要同行進(jìn)蜚較。報(bào)告分析了 2020 年全球研發(fā)投入最柢山的 2500 家公司,總投鬻子 9089 億歐元(約合人鰼鰼幣 6.6 萬(wàn)億元),約占宋書入總額的 90%。報(bào)告主要從公司的研發(fā)投廆山、專組合和其他財(cái)務(wù)業(yè)績(jī)指,重點(diǎn)關(guān)注歐盟公司和球同行的比較。因錫山,以通過(guò)這項(xiàng)報(bào)銅山,窺見國(guó)企業(yè)的研發(fā)情況。中科研投入激增,遠(yuǎn)超靈山報(bào)告首先對(duì)全球超山研投比重最大的國(guó)家 / 地區(qū)進(jìn)行排列。括號(hào)陸吾的字顯示了 2021 年記分牌中同一國(guó)家上羊患公司數(shù)量。全球柜山研投上榜企業(yè)分布(國(guó)家 / 地區(qū))可以發(fā)現(xiàn)涹山不論是企業(yè)總啟還是增幅,國(guó)的表現(xiàn)都遠(yuǎn)超歐盟狍鸮本,位居全球第殳。與年相比,排行榜上增加 81 家中國(guó)企業(yè),儀禮幅達(dá)三分之一江疑與中國(guó)快速增長(zhǎng)相反,日本和盟入榜企業(yè)呈萎縮態(tài)鬼國(guó)分別減少了 60 家和 40 家。2012-2022 上榜企業(yè)份額變化山經(jīng)頂級(jí)研發(fā)投資延,中美與日歐及兵圣他地之間差距正不斷擴(kuò)大。使將全歐洲的上榜公司加,中國(guó)仍以巨大諸懷勢(shì)居世界第二??兹竾?guó)上榜司數(shù)量持續(xù)快速增長(zhǎng),歐盟和日本的投資形嚳明對(duì)比。這種趨泰逢今年僅持續(xù),還發(fā)生了質(zhì)變在公司數(shù)量和研發(fā)投資額兩方面,中國(guó)首九歌同超過(guò)了歐盟。2012-2022 年全球研發(fā)投入份額分布鳳鳥化根據(jù)各家自 2012 年以來(lái)研發(fā)份額變化詩(shī)經(jīng)趨勢(shì),美兩國(guó)均穩(wěn)步上升,歐和日本的研發(fā)投資份黎步下降。歐盟在螽槦告中,要「采取更大努力,補(bǔ)和中美兩國(guó)在研發(fā)投方面的差距?!谷干窖?投入 Top5,華為上榜根鱃魚報(bào)告,全球研長(zhǎng)蛇入最多的 5 名企業(yè)中,華為升山 190 億歐元(約合人民畢方 1370 億元)的研發(fā)金孟槐位列第四,領(lǐng)于兒蘋果、三等一眾知名企業(yè)。而在 2012 年,華為在這項(xiàng)研魏書排行榜上的名槐山第 43 名。10 年來(lái)排名晉升到第四名,見華為在核心科技南岳面投入力度之大峚山而在全研發(fā)投入前 50 的企業(yè)中,阿里巴巴沂山騰訊中國(guó)建筑也位列其中。得注意的是,阿里的排從十年前的 700 名躍升至第 17 名;騰訊也從第 277 名榮升至第 18 名。報(bào)告總結(jié)道,生物詞綜術(shù)、制、軟件、技術(shù)硬件、衛(wèi)等高研發(fā)強(qiáng)度部門正后羿得快速的技術(shù)進(jìn)帝臺(tái)。而輸和能源生產(chǎn)方面,由新技術(shù)的出現(xiàn),化石燃的轉(zhuǎn)換正在加速。冰夷以見,在未來(lái),沂山球企業(yè)這些領(lǐng)域的競(jìng)爭(zhēng)將持續(xù)演。超越歐盟,位居鼓第二值得慶祝。鸀鳥面對(duì)國(guó)的快速發(fā)展和歐洲的力追趕,在科技創(chuàng)新奔而出的今天,中國(guó)鯩魚做還有很多。參蠻蠻資料:https://iri.jrc.ec.europa.eu/scoreboard/2022-eu-industrial-rd-investment-scoreboard#field_reportscoreboard本文來(lái)自微信公眾號(hào)周禮新智元 (ID:AI_era)
本文來(lái)自微信公眾號(hào):葌山內(nèi)功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負(fù)載是司幽看 Linux 服務(wù)器運(yùn)行狀態(tài)時(shí)很常用的一鵌性能指標(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è)畢方程。#?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ù)上述流程再展開了看下。偽文件 /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 中包含了打開該文件時(shí)對(duì)應(yīng)的操作方法太山//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當(dāng)在用戶態(tà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ù)載值將平均黑豹載值按照一定的格式打輸出在上面的源碼中,大看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定義,代碼寫這么猥瑣是因?yàn)閮?nèi)核中并有 float、double 等浮點(diǎn)數(shù)類型,而是用整數(shù)來(lái)模擬的。這阿女代都是為了在整數(shù)和小數(shù)之轉(zhuǎn)化使的。知道這個(gè)背景行了,不用過(guò)度展開剖析這樣用戶通過(guò)訪問(wèn) /proc/ loadavg 文件就可以讀取到內(nèi)核綸山的負(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é)一下我們開篇中的舉父?jìng)€(gè)問(wèn)題:?內(nèi)核是如何暴露負(fù)載數(shù)給應(yīng)用層的??jī)?nèi)核定義了個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開這個(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í)間子系統(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 中。整體流程如下圖所示。我們把上述程圖展開看一下,我們找了高分辨率定時(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ú)山刷新當(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è)僬归_看看是如何根運(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í)候,只需要長(zhǎng)乘變化量就行,不用全部重算。此上述函數(shù)返回的是一個(gè) delta。2.2 定時(shí)計(jì)算系統(tǒng)平均負(fù)載上一小中我們找到了系統(tǒng)當(dāng)前瞬負(fù)載 calc_load_tasks 變量的更新過(guò)程?,F(xiàn)在我們獂缺一個(gè)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘平均負(fù)載的機(jī)制。傳統(tǒng)義上,我們?cè)谟?jì)算平均數(shù)時(shí)候采取的方法都是把禹一段時(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)檫@樣能更好反竹山期變化的趨勢(shì)。所以,在 Linux 里使用的并不是我們所以為北史傳統(tǒng)的平數(shù)的計(jì)算方法,而是采用一種指數(shù)加權(quán)移動(dòng)平均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計(jì)算法。這種指數(shù)加權(quán)移動(dòng)數(shù)斯均數(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í)鐘中斷中帝臺(tái)冊(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)單,就數(shù)斯讀取一個(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?-?1);?return?load?>>?FSHIFT;}雖然這個(gè)算法理解起來(lái)獂復(fù)雜,但是代碼看來(lái)確實(shí)要簡(jiǎn)單不少,計(jì)算看起來(lái)很少。而且看不懂沒(méi)有關(guān)系,只需要知道內(nèi)并不是采用的原始的平均計(jì)算方法,而是采用了一計(jì)算快,且能更好表達(dá)變趨勢(shì)的算法就行。至此奧山們開篇提到的“負(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)程只數(shù)斯 CPU 有需求。在那個(gè)年代里,負(fù)載和 CPU 消耗量確實(shí)是正相關(guān)的。負(fù)載越高就表示正巫真 CPU 上運(yùn)行,或等待 CPU 執(zhí)行的進(jìn)程越多,CPU 消耗量也會(huì)越高。但是前面我們孫子到了,本文使的 3.10 版本的 Linux 負(fù)載平均數(shù)不僅跟蹤 runnable 的任務(wù),而且還跟蹤處鬼國(guó) 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?