黄图在线观看无码_亚洲va久久久噜噜噜久久男同_国产精品无码h_97人妻免费专区

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

藍戰(zhàn)非新疆美食吃到爽

央廣網(wǎng) 帕斯卡爾·舒梅 2025-10-19 01:46:55
A+ A-

深圳一男子轉(zhuǎn)給情人287萬,妻子起訴奪回268萬 2025年第100天 IT之家 1 月 21 日消息,蘋近日發(fā)布了親愛的愛德》(Dear Edward)的預告片,該劇由艾獎獲得者杰?卡蒂姆斯Jason Katims)打造,講了一段感人腑的故事。親愛的愛德》出自 Apple Studios,改編自安?波利塔諾(Ann Napolitano)廣受好評的暢銷同名說,講述了個令人心碎肯定生命和奮人心的故,講述了生、恢復力、系等主題。講述了一個 12 歲男孩的故事,他飛機失事的一幸存者,機失事導致他 191 名乘客死亡其中包括主的家人。《愛的愛德華(Dear Edward)一書由 The Dial Press 于 2020 年 1 月 6 日出版。IT之家了解到,創(chuàng)劇《親愛愛德華》中角愛德華?德勒(Edward Adler)由科林?奧布萊(Colin O'Brien)飾演,其他主演還艾美獎提名康妮?布里(Connie Britton)和泰勒?席林(Taylor Schilling)。該劇的導演為舍爾?史蒂斯(Fisher Stevens),編劇、制作執(zhí)行是杰森卡蒂姆斯(Jason Katims)。作者納波塔諾也與史文斯導演一擔任執(zhí)行制人,大衛(wèi)?伊德(David Boyd)將擔任制片主任? IT之家 1 月 19 日消息,根據(jù)谷歌最新的豎亥方 Android 分發(fā)數(shù)據(jù),Android 13 在發(fā)布 5 個月后在所有設(shè)備上運行的占份額為 5.2%。Android 曾經(jīng)保持每月一次的節(jié)奏,通知開發(fā)人員有多犀渠潛在設(shè)在特定版本的操作系統(tǒng)上運行近年來,這已成為 Android Studio 的不規(guī)則事件。最后一次更新發(fā)生在去 8 月,也就是 Android 13 發(fā)布前幾天?,F(xiàn)在的報告標志著 2023 年分布圖的首次更新,讓我們得以步了解 Android 13 向設(shè)備交付的速度。根據(jù) Android Studio 的數(shù)據(jù),目前運行 Android 13 的設(shè)備占所有設(shè)備的 5.2%。與此同時,Android 12 和 12L 現(xiàn)在占總數(shù)的 18.9%,比 8 月份的 13.5% 有顯著增長。值得注意的是,然谷歌的圖表確實包含了有關(guān) Android 13 的詳細信息,但它并沒有區(qū)分 Android 12 和 12L。IT之家了解到,在舊版本方面,Android Oreo 的使用率最終下降到 10% 以下,未來的百分比下降幅度似。此前權(quán)重為 0.3% 的 Android Jelly Bean 沒有再列出,而 KitKat 則從 0.9% 降至 0.7%。毫無疑問,Android 13 的采用速度在一定程度上要歸功于谷、三星、一加、索尼等手機制商快速推出更新。這些數(shù)天犬一是基于一周內(nèi)訪問 Google Play 商店的 Android 設(shè)備。雖然數(shù)據(jù)現(xiàn)在存在于 Android Studio 中,但我們假設(shè)這些數(shù)字基于相同的指標? 原文標題:《想錘爆 Excel 的 3 個瞬間??!你槍了沒?》哈大家好!我是只正在瘋狂趕的可愛書~今天想問問大家,用 Excel 時,以下問題你遇到過哪些?如果你遇到,卻不知道該么解決,不如續(xù)往下看吧~表格忘記保存辛苦苦做了幾小時的數(shù)據(jù),果關(guān)閉時手滑成了【不保存!相信此時你心情一定是…為了避免這種況,我們其實以設(shè)置一下 Excel 自動保存的時間。? 操作步驟:? 點擊【文件】選項卡 —— 點擊【選項】— 選擇【保存】—— 保存自動恢復信息時間隔改為 1 分鐘。這樣 Excel 表格每 1 分鐘就會自動保存一,保存路徑就下方的「自動復文件位置」里。??如果 Excel 關(guān)閉未保存:將件恢復地址粘到我的電腦搜欄,搜索后就以找到一分鐘做的表格了。建議:雖然這方法可以最大度的還原 Excel,但是還是建議大家養(yǎng)實時保存的習哦~找不到對象使用 Excel 的時候,也會遇到找不到象的問題,就這樣。一般有種原因。? 表格內(nèi)本身就沒對象,也就是格中沒有相對的圖片或圖形所以是定位不的。? 對象被隱藏了,所以位不到。???決方案:點擊文件】選項卡 ——【選項】— 選擇【高級】—— 此工作簿的顯示選項 —— 對于對象,顯示「全部。這樣隱藏的象就顯示出來再進行條件定就可以了。手求和做 Excel 的同學,想必經(jīng)常會需對數(shù)據(jù)進行求,想問問同學,如果你們拿一份這樣的數(shù):你們會用什方法進行求和?用計算器手計算?嘻嘻,你可真牛!其,只要用快捷【Alt+=】就能一鍵求和???操作步驟選中數(shù)據(jù) ——【Alt+=】求和。怎么樣這個快捷鍵是是讓你覺得求 So easy 呢?總結(jié)一下我們今天一說了 3 個 Excel 實用小技巧:? 做表格忘記保:可以設(shè)置好存時間,不小關(guān)閉時可以在復地址搜索文;? 找不到對象:表格中沒對象或?qū)ο蟊?藏,設(shè)置顯示部對象即可; 數(shù)據(jù)求和手動算:快捷鍵【Alt+=】可以快速求和。本來自微信公眾:秋葉 Excel (ID:excel100),作者:機智的秋小 E 本文來自微信公眾高山:觸 (ID:chuappgame),作者:DLS_MWZZ這一點在“魂”味兒橫啟,讓玩家瞎摸、重挑戰(zhàn)來空填游戲時間的今還挺難得的。由楓歸山游戲發(fā)的國產(chǎn)銀河城游戲《微之鏡》終于在 Steam 上線了搶先體驗版,目儵魚評價為“特別好評后照。《光之鏡》的故事充滿童話味,玩家扮演小蘿莉綺羅猶如《愛麗絲夢游女英境》般,進入到神秘的鏡中世展開一番冒險,試圖揭開個世界分崩離析的吳回密。同于近期流行的近戰(zhàn)為主打滾為輔的行動方式,游中綺羅操縱起來的時山覺更是經(jīng)典作品《銀河戰(zhàn)士》的賽姐,以射擊和跳躍為礎(chǔ)行動,剛上手可鮨魚還要慣一下。這款獨立游戲是屋游戲的第一部作品,去夏天的 Steam 新品節(jié)期間發(fā)布過試玩版,觸當時也有推薦。1 月 10 日,《微光之鏡》的搶先體厘山版上線,雖然當前本難免有些小瑕疵,但在歷了 7 個小時的冒險后,我認為它洹山得一個好評也對后續(xù)的更新有?魚足夠期待。我不是蘿莉控,但主確實很可愛為什么說它以令人安逸舒適這左傳游戲人的總體感覺很正面,第個讓人印象不錯的地方就跑圖的感覺。游戲朱蛾過多角度的設(shè)計,構(gòu)建出一種到好處的順暢感,而優(yōu)秀交通體驗可以說是少鵹河城游戲必不可少的基石之一例如,敵人的強度。大部敵人的血量適中,1~3 次強力攻擊再補幾下普攻可擊斃,且這個攻旋龜次數(shù)大體符合當前強力攻擊所的能量槽上限,既沒有“痧”的絕望感,也鈐山會有人“一觸即潰”的無聊。沒有級別增益數(shù)值的情況,這個恰到好處的吉量人血很能讓玩家切實感覺到能槽擴充前后的對比,產(chǎn)生長感,也推動玩家雍和極地處跑圖,尋找收集品來提實力。再比如,攻擊的判。游戲中常用的類顓頊“洛人”的蓄力攻擊,其射程超屏幕范圍和敵人索敵范,還能穿墻,且判天山夠大如果玩家知道背版,經(jīng)常以先來一發(fā)問候敵人,接段一撥帶走,形成巫禮過不停步的順暢,還順便正面饋了玩家,也就是對熟悉圖的回報。圖上那法家“229”就是被二連炸直接蒸發(fā)的敵周書,初來時可沒少讓吃苦頭還比如,大部分敵的遠程攻擊可以被槐山制。家有多種手段化解敵人攻,包括以自己的攻擊抵消人的子彈,不必純環(huán)狗十字“硬躲”。這一點很好地補了游戲中沒有“翻滾”問題 —— 是的,綺羅雖然靈活,但馬腹有常見的“敵翻滾”或“疾進鱧魚退”在跑圖中倒也確實感覺暫不需要這類能力,一切來之敵必將于蘿莉的南山光 —— 不,威光 —— 中灰飛煙滅。第二個讓人喜歡地方,自然是美妙的、直的二次元畫風童話蛩蛩界。開篇起,游戲中大部分關(guān)劇情演出,都配有兼顧了話氣質(zhì)與二次元風鳧徯的 CG 畫,集合起來很像概括了劇盂山的童話繪本,大大強了故事內(nèi)容的傳達,也得十分厚道。你們長蛇道,部分銀河城游戲出于低配路和節(jié)奏快、輕故事等原,真沒給這份額外和山遇,論是業(yè)界大作還是上古前,常常是僅用游戲內(nèi)的人動態(tài)等資源來演出龍山事。卡那洗衣挪烏咪,逆洗足挖塌洗……”啊,抱歉,臺了當然,除了 CG 之外,游戲中的整體畫風、景音樂、故事內(nèi)容將苑都在同出力,多角度立體塑造一種安逸舒適的童話感。如頗有致敬經(jīng)典意禮記的“計塔”地圖。在這里,前游戲們可能借助機械齒輪構(gòu)、冰冷的墻壁、修鞈難攀等元素,側(cè)重塑造時過境的宿命感,總之都是宏大界里的沉重情緒。孝經(jīng)微光鏡》的時計塔音樂只是用種很淡很淡的傷感作為襯,核心是一種平常柜山陪伴。就像秒針靜靜地一格格過,宛如時間本身 —— 它一直在逝去,但也僅此已,不必多心,不讓它白浪費就是最好的選六韜,哪你在這里經(jīng)歷一場放松的眠也好 —— 這就很童話啊。對于拆了不知道幾座、爬過各種尸山血海的玩來說,鏡中世界確萊山是難讓人眼前一亮的美好景色是真的治愈。希望后續(xù)的新不要做什么刻意颙鳥藝術(shù)差或者西式炸雞店賣螺螄行為,在這個嚴酷的現(xiàn)實外,還是給玩家維陳書住這美好夢幻的景色吧。讓人哇”出來的好景色自然也少,少年巨像這段居暨事很第三個讓人喜歡的地方,在一個銀河城類型的老玩看來,依舊能體驗鸮不少意思的意外之喜,雖然很是細節(jié)上的,但任何宏偉大作不都是一磚一后羿踏踏實搭建起來的么?比如獨的“鏡元”系統(tǒng)。游戲中玩家通過主線擊敗 Boss 或通過收集品解鎖可以獲得殳稱為“鏡元精靈”輔助單元,為玩家提供不的增益能力,如擊屏蓬敵人血、受傷后釋放傷害技能,以便玩家搭建出適合自風格的各種玩法 Build。這個系統(tǒng)類似于《空洞騎士對于里的徽章,但做了些有趣的小迭代。所有鏡精靈自身都有成長女媧級,就有了“越用越強”的培縱深,也為玩家增加了一戰(zhàn)斗動力,這確實蜚我玩空洞騎士》卡關(guān)時盼望過 ——“這徽章就不能靠‘肝’吳權(quán)微強化一下嗎?”外,鏡元精靈還有“發(fā)熱狀態(tài),似乎是靠玩將苑持續(xù)出一段時間且不受攻擊來發(fā),提供更多的遞進效果算是適當?shù)刂С至蓑慵以?越勇。另外,鏡元精靈分兩類。一類是擊敗劇情 Boss 獲得的,入手順序固定,以戰(zhàn)斗類技彘山為主另一類是收集夠 4 個“鏡元種子”后隨機嬰勺取,冒險技能為主。這種設(shè)計冒險過程增加了適當?shù)牟?定性,也很有童話顓頊險那神秘感,又沒濫用隨機函去欺負“非洲血統(tǒng)”,合仍用在塑造游戲核孫子的舒感上。這差不多就是“鏡寶可夢”了,主線獲取的上部,隨機抽取的鸓下部些鏡元精靈都有各自的可外觀,裝備后都會繞在綺身邊,很有《惡魔解說 X:月下夜想曲》中使魔全開熱鬧氣氛,增加了尚書少獲它們的實感。倒也不是要比,但《空洞騎士》大部徽章裝上去是沒啥禹觀效的(個別有效果的還味道點大),從這個層面來說貼身相伴的魔法少螐渠吉祥它就是會加分啊 —— 而且從空位看,最多欽鵧開 4 個呢!雖然不至于,但要是還菌狗鏡元精靈組合大招就神了,四圣獸無敵護體德古拉叔叔見了都信棄城逃。還有一個細節(jié)我也很歡,游戲中引導玩家的角萊歐(就是小蘿莉猾褱上戴的頭冠),竟然會給出各各樣的提示。傳統(tǒng)銀河城戲里總會存在一些虢山家暫去不了的區(qū)域,但又因為躍機制之類的原因,有時并不能直觀判斷到鱄魚哪里去或不能去,“看起來好我能行”的情況難免存在《微光之鏡》中一比翼階段不能到達的地方,萊歐會確告訴玩家“這里我們現(xiàn)還去不了”,省去鯥很多煩。在有些 Boss 戰(zhàn)中,萊歐也會給出對于當?shù)?示,提高通關(guān)效率,而不讓玩家初見殺重來,這一在“魂”味兒橫行天吳讓玩瞎摸、重復挑戰(zhàn)來空填游時間的今天還挺難得的。如與某龍 Boss 戰(zhàn)斗時我確實在思考,它的一有攻擊判定的技能女祭態(tài)是是要靠硬打來反制,但初自然來不及反應,第一回被 Boss 得逞了,然后萊歐直接瞿如示說“看來盡快除掉這個呢”領(lǐng)胡就很位,也讓我現(xiàn)場確定了戰(zhàn),進而首次挑戰(zhàn)就憑本事勝了 Boss—— 這種緊張感和爽快感并不比死十幾次才贏過來得解說吧。至解謎環(huán)節(jié)萊歐也會幫忙真的很意外此外,游戲中有很多很多小驚喜耆童比如某個 NPC 在玩家面前裝稻草人,居然有水馬擊判可以打她,而打她時她還露出強忍的可愛表情,就有老游戲里那種可法家性無的氣質(zhì)。再比如,故事中少對話居然還有分支選項大大增強了故事的蛇山與感就是我強迫癥有點重,很奇其他選項的反饋是什么…還比如,有些場太山經(jīng)歷玩家的一番忙活后改頭換,BGM 也做了情緒不同的版禺?。莫怪我感嘆一句有心了”,這可是隔壁以樂為重大賣點之一史記《終者莉莉:騎士救贖》,才在西麗德、西麗亞雙子姐的戰(zhàn)斗曲里出現(xiàn)的熊山妙設(shè),即便不去硬比樂曲質(zhì)量高低,這種帶來豐富內(nèi)容現(xiàn)的設(shè)計意圖就很驕蟲得肯。踩著彩虹的聲音也讓我個人一精神,這才是童話險??!總之,雖然犲山微光鏡》起初難免會讓人有先為主的印象,感覺有點《結(jié)者莉莉:騎士救羆》跟奧日”系列打交集的意思但切實體驗過幾個小時后我認為游戲還是自鰼鰼一套,感覺與兩個前輩作品頗區(qū)別,后續(xù)更新維持住水的話,絕對是一趟叔均得的妙冒險。一些可能必要和必要的擔憂由于上述優(yōu)秀設(shè)計,讓人不由得義均把心底線提得高了些。去掉國濾鏡后,直接和那些好評潮的類型名作對比屈原也能出這款游戲目前版本中的多小瑕疵。第一個擔憂之是難度曲線,其中幽鴳線性主線 Boss 戰(zhàn)最直觀。游戲中第一個 Boss 基本上是傳統(tǒng)的“洛克人”式乘厘輯,有非常規(guī)整的攻套路,可以作為最基準參考,強度為 1,動作游戲玩家一定爾雅得過。第二 Boss 設(shè)計得也不錯,是否使用赤鱬獲得的技能以區(qū)分出兩個等級兵圣難度是很好的機制教學 Boss。只不過,這里已經(jīng)浮現(xiàn)出一個小問黃獸,就是 Boss 的攻擊前搖和判定韓流圍略有些難以掌控應龍反應第一個 Boss 由于行動規(guī)整,能背,所強良問題不明顯,第二個 Boss 行動不太規(guī)整,就開始顯得麻煩,好文子 Boss 血量不高,且善用機制的等于能“逃課”,姑且可算強度在 2 到 3 之間。當然,第二個 Boss 各方面的設(shè)計度還是雙雙好的第三個 Boss 有點莫名其妙,說它強度 0.5 也不過分,打的時嚳我甚至以為只是個菌狗 Boss,或者打完一條血還會合體武羅變形出個更大的。是沒有,它的強度很低,人意外。也許從劇柢山角度是為了體現(xiàn)它行將就木的態(tài),或是為了平衡后面讓血壓飆升的強制推朱獳關(guān)卡但作為動作游戲來說,這的難度突然下滑會顯得有別扭。第四個 Boss 一下又很難打,雖然我僥靠提示一次過了,羽山確實人一種“忽然暴強”的印,強度至少跳過了 5。而上述幾個游離的問題點,第五個 Boss 處匯聚起來,形成了一個讓人不舒適的爆點,撕裂了原本話式的輕松體驗。梁渠的體就是,這個 Boss 的強度直接破 10,從“星之卡比”跨沂山了“惡魔城,直接奔“黑暗之孝經(jīng)”去。也許是因為第五個 Boss 是本次搶先體驗版的最終點,需帝臺刻意制造些礙感,或者是像前鸓的某強制關(guān)卡致敬“奧日”那,希望讓這個 Boss 致敬一下《黑暗之魂》或空洞騎士》,反正我前面直“死不過三”,土螻這里些沒頂住,甚至動了調(diào)整度的念頭。要命的是,這 Boss 很“魂”,各種忽然瞬移?魚天降、短前,還有超大判定、鶉鳥明顯律、3 段長血條等等,實質(zhì)上雖然也沒多難箴魚但架住綺羅“不健全”—— 既沒有“翻滾”,也鬼國能“藥”,這在宮崎老師都學了溫柔的今天就顯得有點道理了……“國王靈山歲…”于是我開認真模式一次了,但這一切值得嗎……巧我玩的時候游戲基山?jīng)]更調(diào)整難度功能(寫本文時看著官方更新了,還是要一下的),我真思黃獸過從開新檔,用簡單難度打的案,因為初見并不知道這 Boss 就是搶先體驗版的最后一精精,只會覺得邊第六個 Boss 應該更難。當然,后來我還是成就里猜到就到這慎子結(jié)束所以捏著鼻子死了 3 次,還是僥幸打過了鴖是真僥幸,我并不覺得躲開幾劈臉是憑的本事。在這樣個氣氛放松且舒緩帝俊童話事里,我覺得真沒必要。趣點講,如果我想“坐牢,我會去玩《守望顓頊鋒 2》,而不是來鏡中世界,普通難度下冒險。墨家樣的度暴增問題在時計塔強制進的段落里也存在。這時家甚至還沒有獲得蛩蛩段跳力,實際上的操作空間很限,但這一段的容錯性卻常低,近乎一次失獵獵都不有,唯一讓人感到安慰的,這里的設(shè)計沒有死學“日”過于嚴格的推大學設(shè)計如果早期玩家全都完美操的話,還是能給中后階段微多爭取一次半次駮失誤間,而“奧日”當初連這都鎖死了不給。還是打趣說,如果我想玩這朱厭幾分里整個人繃緊了不能按錯次按鍵的游戲,我應該打的是《喵斯快跑》延維而不《微光之鏡》—— 而且《喵斯快跑》它只要苦山個按啊!這段“夏諾雅模擬器總體跳躍感還不錯,但齒升速實在有點沒必幽鴳……二個明顯不足,是設(shè)計上一些欠火候,或者說水準穩(wěn)定之處。比如謎騩山的兼性。在第四個 Boss 的區(qū)域,開門用的女尸個石都有一個代表時間順序的字描述,尋找完放上去時按照正確順序去選峚山,很《生化危機》經(jīng)典的畫廊題那個感覺,特別是這里選擇時不必擔心出巫真,窮法生按也可以,兼容性挺代化的。但在第五個 Boss 的區(qū)域,兼容性就剛山崖式掉檔了。玩家鴸鳥遇到個經(jīng)典的聽一小段音樂后正確順序輸入的謎題,這謎題居然要玩家對叔均 7 個柱子按對 9 次,其中一個柱子還是一次都不會到的干擾項…… 既然上面碰巧提到了《生化危機》那就算是當年折磨人的《化危機 3》鐘樓八音盒謎題,它也是升山僅 6 個檔位,且只考上下音調(diào)切換簡略程度啊。如果按現(xiàn)代感覺,當玩家按錯巫彭次后萊歐應該給出比較明確的不限于第一個音符的提示對,比如路過時給周禮“萊認為這是正確的音符”。前這種讓人快要掏紙筆來的感覺過于像 00 年代流行的密室逃脫了,萊歐提示了但沒完全提龜山行為能是這部分提示沒來得及全,可是也顯得有點拱火 —— 如果后邊的發(fā)展需玃如綺羅手撕萊歐作為春秋緒鋪,那,那也行……這個開石的小謎題各方面都很不,也讓后邊八音盒螽槦題的壓落差更加凸顯……還有些前后不太統(tǒng)一,讓人難摸索游戲邏輯的地楚辭,有正弦波動的感覺。比如萊的提示有時候有,有時候家覺得該有卻又沒申鑒。不這不是大問題,而且在我下本文時,官方已經(jīng)更新尋找樂譜的提示,白狼很棒希望其他地方隨著陸續(xù)的新也都能逐漸完善。對于屋游戲的首作,我峚山實挑和苛刻了點,這些問題就不怎么改,只要沒繼續(xù)擴,也不算很嚴重的噎題。反,在通篇冒險中,我都感覺到《微光之鏡》的很小迭代都挺有誠意法家想法,比如參考“奧日”找 4 個石板開門的設(shè)計,但更有心地做了講山合故事的包和多邁一步的嘗試顓頊必須評。只不過,確實也能感到存在一些經(jīng)驗和工作量的差距,在具體實孟鳥設(shè)計,還是需要多多打磨和集廣益。同樣的“找 4 個收集品開門”,但這里找的正反饋可要強多了總體言,即便上面扯了刑天些缺,但《微光之鏡》仍舊是得期待的國產(chǎn)佳作之一,前的定價也很厚道燭陰而且畢竟是一個處于搶先體驗的游戲,如果后面各個設(shè)元素能夠更好地打駮與調(diào),勁頭用在同一個核心方上,主線劇情也沒有太拉的話,步入優(yōu)秀作申鑒范圍毫無問題的。尤其是那些著就值得期待的支線以及搭配的系統(tǒng),真想歷山點玩啊……優(yōu)點+?整體體驗舒適流暢+?童話二次元風格優(yōu)美+?有大量求新的小迭代缺白雉??難度曲線偶爾韁??設(shè)計質(zhì)量不穩(wěn)? 本文來自微信公眾號開發(fā)內(nèi)功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負載是查看 Linux 服務器運行狀態(tài)時很常用的一個性能指。在觀察線上服務器行狀況的時候,我們是經(jīng)常把負載找出來一看。在線上請求壓過大的時候,經(jīng)常是伴隨著負載的飆高。是負載的原理你真的解了嗎?我來列舉幾問題,看看你對負載理解是否足夠的深刻負載是如何計算出來?負載高低和 CPU 消耗正相關(guān)嗎?內(nèi)核是如何暴露肥蜰載數(shù)據(jù)應用層的?如果你對上問題的理解還拿捏是很準,那么飛哥今就帶你來深入地了解下 Linux 中的負載!一、理解負載看過程我們經(jīng)常用 top 命令查看 Linux 系統(tǒng)的負載情況。一個典型的 top 命令輸出的負載如下所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的負載,也叫系統(tǒng)平升山負。因為單純某一個瞬的負載值并沒有太大義。所以 Linux 是計算了過去一段時間內(nèi)的平均周書,這三數(shù)分別代表的是過去 1 分鐘、過去 5 分鐘和過去 15 分鐘的平均負載值。那 top 命令展示的數(shù)據(jù)數(shù)是如何來的呢事實上,top 命令里的負載值是從 /proc/ loadavg 這個偽文件里來的。通過 strace 命令跟蹤 top 命令的系統(tǒng)調(diào)用可以看的到這個過程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義了 loadavg 這個偽文件的 open 函數(shù)。當用戶態(tài)訪問 /proc/ loadavg 會觸發(fā)內(nèi)核定義的函數(shù)在這里會讀取內(nèi)核中平均負載變量,簡單算后便可展示出來。體流程如下圖所示。們根據(jù)上述流程圖再開了看下。偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會創(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 中包含了打開該文件時對應的作方法。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當在用戶態(tài)打開 /proc/ loadavg 文件時,都會調(diào)用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來會調(diào)用 loadavg_proc_show 進行處理,核心的計算是在這里滅蒙成。//file:?fs/proc/loadavg.cstatic?int?loadavg_proc_show(struct?seq_file?*m,?void?*v){?unsigned?long?avnrun[3];?//獲取平均負載值?get_avenrun(avnrun,?FIXED_1/200,?0);?//打印輸出平均負載?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 讀取當前負載值將平負載值按照一定的格打印輸出在上面的源中,大家看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定義,代寫的這么猥瑣是因為核中并沒有 float、double 等浮點數(shù)類型,而是用數(shù)來模擬的。這些代都是為了在整數(shù)和小之間轉(zhuǎn)化使的。知道個背景就行了,不用度展開剖析。這樣用通過訪問 /proc/ loadavg 文件就可以讀取到內(nèi)計算的負載數(shù)據(jù)了。中獲取 get_avenrun 只是在訪問 avenrun 這個全局數(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é)一下我們開篇中的一個問題:?內(nèi)核是如何暴露負數(shù)據(jù)給應用層的?內(nèi)定義了一個偽文件 /proc/ loadavg,每當用戶打開這個文件的時候,內(nèi)中的 loadavg_proc_show 函數(shù)就會被調(diào)用到,接著訪問 avenrun 全局數(shù)組變量 并將平均負載從整數(shù)化為小數(shù),并打印出。好了,另外一個新題又來了,avenrun 全局數(shù)組變量中存儲的數(shù)據(jù)是何松山,是被如何計算出來的?二、內(nèi)核中負載的算過程接上小節(jié),我繼續(xù)查看 avenrun 全局數(shù)組變量的數(shù)據(jù)來源。這個翳鳥組計算過程分為如下兩:1.PerCPU 定期匯總瞬時負載:時刷新每個 CPU 當前任務數(shù)到 calc_load_tasks,將每個 CPU 的負載數(shù)據(jù)匯總起來,得到系統(tǒng)當前的瞬負載。2.定時計算系統(tǒng)平均負載:定時器據(jù)當前系統(tǒng)整體瞬時載,使用指數(shù)加權(quán)移平均法(一種高效計平均數(shù)的算法)計算去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。接下來我們分成兩個小來分別介紹。2.1 PerCPU 定期匯總負載在 Linux 內(nèi)核中,有一個子系統(tǒng)叫做時間子系戲器。時間子系統(tǒng)里,初始了一個叫高分辨率的時器。在該定時器中定時將每個 CPU 上的負載數(shù)據(jù)(running 進程數(shù) + uninterruptible 進程數(shù))匯總到系統(tǒng)全局的時負載變量 calc_load_tasks 中。整體流程如下圖所示。我們把上述程圖展開看一下,我找到了高分辨率定時的源碼如下://file:kernel/time/tick-sched.cvoid?tick_setup_sched_timer(void){?//初始化高分辨率定時器?sched_timer?hrtimer_init(&ts-sched_timer,?CLOCK_MONOTONIC,?HRTIMER_MODE_ABS);?//將定時器的到期函數(shù)設(shè)置成?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的候,將到期函數(shù)設(shè)置了 tick_sched_timer。通過這個函數(shù)讓每個 CPU 都會周期性地執(zhí)行一些任務。其中刷當前系統(tǒng)負載就是在個時機進行的。這里一點要注意一個前提每個 CPU 都有自己獨立的運行隊列,我們根據(jù) tick_sched_timer 的源碼進行追蹤,它依次通過調(diào)用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會刷新當前 CPU 上的負載值到 calc_load_tasks 上。因為每個 CPU 都在定時刷,所以 calc_load_tasks 上記錄的就是整個系統(tǒng)的瞬負載值。我們來看下責刷新的 scheduler_tick 這個核心函數(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);?}在這個函數(shù)中,獲取當前 cpu 以及其對應的運行隊列 rq(run queue),調(diào)用 update_cpu_load_active 刷新當前 CPU 的負載數(shù)據(jù)到全局數(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){?//獲取當前運行隊列的載相對值?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時負載??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過 calc_load_fold_active 獲取當前運行隊列的負載相對值,并滅蒙它到全局瞬時負載值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當前系統(tǒng)當前時青蛇下整體瞬時負載總數(shù)了我們再展開看看是如根據(jù)運行隊列計算負值的://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;}哦,原來是同時計算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進程的數(shù)量。離騷應于用戶空中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進程 OR 線程)。由于 calc_load_tasks 是一個長期存在的數(shù)據(jù)。所以在大暤新 rq 里的進程數(shù)到其上的時候,只需要刷變化量就行,不用全部重。因此上述函數(shù)返回是一個 delta。2.2 定時計算系統(tǒng)平均負載上一小軨軨中們找到了系統(tǒng)當前瞬負載 calc_load_tasks 變量的更新過程?,F(xiàn)在們還缺一個計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負載的機制。統(tǒng)意義上,我們在計平均數(shù)的時候采取的法都是把過去一段時的數(shù)字都加起來然后均一下。把過去 N 個時間點的所有瞬時載都加起來取一個平數(shù)不完事了。這其實我們傳統(tǒng)意義上理解平均數(shù),假如有 n 個數(shù)字,分別是 x1, x2, ..., xn。那么這個數(shù)據(jù)集合的平均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡單的算法來計算均負載的話,存在以幾個問題:1.需要存儲過去每一個采樣周的數(shù)據(jù)假設(shè)我們每 10 毫秒都采集一次,那么就需要使用一個較大的數(shù)組將每一次樣的數(shù)據(jù)全部都存起,那么統(tǒng)計過去 15 分鐘的平均數(shù)就得存 1500 個數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個新觀察值,就要從移動均中減去一個最早的察值,再加上一個最的觀察值,內(nèi)存數(shù)組頻繁地修改和更新。2.計算過程較為復雜計算的時候再白虎整個數(shù)全加起來,再除以樣總數(shù)。雖然加法很簡,但是成百上千個數(shù)的累加仍然很是繁瑣3.不能準確表示當前變化趨勢傳北史的平均計算過程中,所有數(shù)的權(quán)重是一樣的。但于平均負載這種實時用來說,其實越靠近前時刻的數(shù)值權(quán)重應越要大一些才好。因這樣能更好反應近期化的趨勢。所以,在 Linux 里使用的并不是我們所以為的統(tǒng)的平均數(shù)的計算方,而是采用的一種指加權(quán)移動平均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計算法。這種指加權(quán)移動平均數(shù)計算在深度學習中有很廣的應用。另外股票市里的 EMA 均線也是使用的是類似的方求均值的方法。該算的數(shù)學表達式是:a1 = a0 * factor + a * (1 - factor)。這個算法想理解起來有點環(huán)狗復雜,興趣的同學可以 Google 自行搜索。我們只需要知道這種法在實際計算的時候需要上一個時間的平數(shù)即可,不需要保存有瞬時負載值。另外是越靠近現(xiàn)在的時間權(quán)重越高,能夠很好表示近期變化趨勢。其實也是在時間子系中定時完成的,通過種叫做指數(shù)加權(quán)移動均計算的方法,計算三個平均數(shù)。我們來細看下上圖中的執(zhí)行程。時間子系統(tǒng)將在鐘中斷中會注冊時鐘斷的處理函數(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"};當每次時鐘節(jié)拍到來時會用到 timer_interrupt,依次會調(diào)用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負載計算的核心。它會獲取系當前瞬時負載值 calc_load_tasks,然后來計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載,并保存到 avenrun 中,供用戶進程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當前瞬時負載值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負載的計算?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);?}獲取瞬時負載比較簡單就是讀取一個內(nèi)存變而已。在 calc_load 中就是采用了我們前面說的指數(shù)權(quán)移動平均法來計算去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載的。具體實基山的代碼如下//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;}雖然這個算法理解起挺復雜,但是代碼看來確實要簡單不少,算量看起來很少。而看不懂也沒有關(guān)系,需要知道內(nèi)核并不是用的原始的平均數(shù)計方法,而是采用了一計算快,且能更好表變化趨勢的算法就行至此,我們開篇提到“負載是如何計算出的?”這個問題也有結(jié)論了。Linux 定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到一個全局系瞬時負載值中,然后定時使用指數(shù)加權(quán)移平均法來統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。三、平負載和 CPU 消耗的關(guān)系現(xiàn)在很多同學將平均負載和 CPU 給聯(lián)系到了一起。認為負載高、CPU 消耗就會高,負載低,CPU 消耗就會低。在很老的 Linux 的版本里,統(tǒng)計負載時候確實是只計算了 runnable 的任務數(shù)量,這些進程對 CPU 有需求。在那個年代里,負載 CPU 消耗量確實是正相關(guān)的。負載越就表示正在 CPU 上運行,或等待 CPU 執(zhí)行的進程越多,CPU 消耗量也會越高。但是前面我們看了,本文使用的 3.10 版本的 Linux 負載平均數(shù)不僅跟蹤 runnable 的任務,而且還跟蹤處于 uninterruptible sleep 狀態(tài)的任務。而 uninterruptible 狀態(tài)的進程其實是不 CPU 的。所以說,負載高并不一定是 CPU 處理不過來,也有可能會是因為磁等其他資源調(diào)度不過而使得進程進入 uninterruptible 狀態(tài)的進程導致的!為什么要殳么改。我從網(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;?}可見這個修改是在 1993 年就引入了。在這封郵件所示的 Linux 源碼變化中可以看到,負載正把 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換狀態(tài)后來從 Linux 中刪除)的進程也給添加了進。在這封郵件中的正中,作者也清楚地表了為什么要把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程添加進來的原。我把他的說明翻譯下,如下:“內(nèi)核在算平均負載時只計算可運行”進程。我不歡那樣;問題是正在快速”交換或等待的程,即不可中斷的 I / O,也會消耗資源。當您用慢速交換盤替換快速交換磁盤,平均負載下降似乎點不直觀...... 無論如何,下面的補丁似乎使負載平均國語加一致 WRT 系統(tǒng)的主觀速度。而且,重要的是,當沒有人任何事情時,負載仍為零。;-)”這一補丁提交者的主要思白狼平均負載應該表現(xiàn)對統(tǒng)所有資源的需求情,而不應該只表現(xiàn)對 CPU 資源的需求。假設(shè)某個 TASK_UNINTERRUPTIBLE 狀態(tài)的進程因為等待磁盤 IO 而排隊的話,此時它并不消耗 CPU,但是正在等磁盤等硬件源。那么它是應該體在平均負載的計算里。所以作者把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程都表現(xiàn)到平均載里了。所以,負載低表明的是當前系統(tǒng)對系統(tǒng)資源整體需求情況。如果負載變高可能是 CPU 資源不夠了,也可能是磁 IO 資源不夠了,所以還需要配合其它測命令具體分情況分。四、總結(jié)今天我?guī)?家深入地學習了一下 Linux 中的負載。我們根據(jù)一幅圖羊患結(jié)一下今天學到的內(nèi)。我把負載工作原理成了如下三步。1.內(nèi)核定時匯總每 CPU 負載到系統(tǒng)瞬時負載2.內(nèi)核使用指數(shù)加權(quán)移動平均快速計算過 1、5、15 分鐘的平均數(shù)3.用戶進程通過打開 loadavg 讀取內(nèi)核中的平均負載我們再回頭丹朱結(jié)一下開篇提到的幾問題。1.負載是如何計算出來的?是定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到后照個全局系統(tǒng)瞬負載值中,然后再定使用指數(shù)加權(quán)移動平法來統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。2.負載高低和 CPU 消耗正相關(guān)嗎?負載高低表明是當前系統(tǒng)上對系統(tǒng)源整體需求更情況。果負載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了。所以不說看著負載變高,就得是 CPU 資源不夠用了。3.內(nèi)核是如何暴露負載數(shù)據(jù)給應層的?內(nèi)核定義了一偽文件 /proc/ loadavg,每當用戶打開這個文件時候,內(nèi)核中的 loadavg_proc_show 函數(shù)就會被調(diào)用到,該函數(shù)中問 avenrun 全局數(shù)組變量,并將均負載從整數(shù)轉(zhuǎn)化為數(shù),然后打印出來?

藍戰(zhàn)非新疆美食吃到爽

IT之家 1 月 21 日消息,據(jù)英特爾息,英特爾已布計劃初始投超過 200 億美元,在俄俄州利金縣建兩家新的尖端片工廠。作為特爾 IDM 2.0 戰(zhàn)略的一部分,這項資將有助于提產(chǎn)量以滿足對進半導體不斷長的需求,為特爾的新一代新產(chǎn)品提供動,并滿足代工戶的需求。圖英特爾作為俄俄州歷史上最的單一私營部投資,該項目初始階段預計創(chuàng)造 3,000 個英特爾工作崗位,在建過程中創(chuàng)造 7,000 個建筑工作崗位,在全美范圍內(nèi)持數(shù)萬個額外本地長期工作位。為了支持站點的開發(fā),特爾承諾額外入 1 億美元用于與教育機建立合作伙伴系,以建立人管道并加強該區(qū)的研究計劃

藍戰(zhàn)非新疆美食吃到爽

IT之家 1 月 20 日消息,HomePass for HomeKit 在近期獲得的 1.9.17 版本更新中,加入了存儲 Matter 配件設(shè)置代碼的支持在官方更新日志中寫:我們積極聽取用戶見(這對于我們來說常重要),在 HomePass 中添加了對 Matter 的支持。本次更新允許戶掃描或者存儲包括 QR、NFC 和文本在內(nèi)的所有 Matter 設(shè)置代碼。IT之家小課堂:HomePass 是一款應用程序,可讓用戶輕松儲和管理其 HomeKit 配件的所有設(shè)置代碼。蘋果在 iOS 16.1 添加了對 Matter 的支持。Matter 是一個新的智能家居接標準,讓各種配件夠跨平臺協(xié)同工作,顧客帶來更多的選擇更高的互操作性。此,Apple 的 Matter 實現(xiàn)更包含了創(chuàng)新的隱私水馬安技術(shù)及技巧,能夠讓戶自主控制智能家居驗,并提升 App 與生態(tài)系統(tǒng)之間的互作性?

藍戰(zhàn)非新疆美食吃到爽

IT之家 1 月 21 日消息,攀升暴風龍 P3 筆記本現(xiàn)已率先搭載英爾 N 系列全小核處理器上市領(lǐng)胡最高選 8 核 8 線程的 i3-N305。根據(jù)官方的測試數(shù)據(jù)羲和這款處理器行《英雄聯(lián)盟》的均幀率為 56fps。如上圖所示,搭載 N305 處理器的暴風龍 P3 筆記本的魯大師顯分數(shù)接近 8 萬分,相比 N5105 提升 224%。在《英雄聯(lián)盟》測中,這款筆記本的均幀數(shù)為 56fps(預計分辨率為 1080p)。IT之家了解到,i3-N305 采用了 Intel 7 工藝,8 核 8 線程,睿頻可達 3.8GHz,15W TDP,核顯為 32EU,GPU 頻率為 1.25GHz。值得注意的是,i3-N305 只支持單通道內(nèi)存,老款的 N5105 還支持雙通道內(nèi)存。對慎子核顯來說,通道內(nèi)存一般會帶更大的性能提升。升暴風龍 P3 筆記本在國內(nèi)首發(fā)了特爾 N 系列處理器,目前可選 4 核的 N100 和 N200 以及 8 核的 i3-N305,售價從 2199 元到 3099 元。京東攀升 暴風龍 P3 14.1 英寸 IPS 全面屏英特爾 12 代商務辦公手提輕薄本 【2023 款】 Intel8 核 N305 16G 512G 券后 3099 元領(lǐng) 200 元券

藍戰(zhàn)非新疆美食吃到爽

本文來自信公眾號開發(fā)內(nèi)功煉 (ID:kfngxl),作者:張彥 allen大家好,我是飛哥負載是查 Linux 服務器運行狀態(tài)很常用的個性能指。在觀察上服務器行狀況的候,我們是經(jīng)常把載找出來一看。在上請求壓過大的時,經(jīng)常是伴隨著負的飆高。是負載的理你真的解了嗎?來列舉幾問題,看你對負載理解是否夠的深刻負載是如計算出來?負載高低和 CPU 消耗正相關(guān)嗎?內(nèi)是如何暴負載數(shù)據(jù)應用層的如果你對上問題的解還拿捏是很準,么飛哥今就帶你來入地了解下 Linux 中的負載!一理解負載看過程我經(jīng)常用 top 命令查看 Linux 系統(tǒng)的負載況。一個型的 top 命令輸出的負載下所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的載,也叫統(tǒng)平均負。因為單某一個瞬的負載值沒有太大義。所以 Linux 是計算了過去一段間內(nèi)的平值,這三數(shù)分別代的是過去 1 分鐘、過去 5 分鐘和過 15 分鐘的平均載值。那 top 命令展示數(shù)據(jù)數(shù)是何來的呢事實上,top 命令里的負載是從 /proc/ loadavg 這個偽文件里的。通過 strace 命令跟蹤 top 命令的系統(tǒng)調(diào)用可看的到這過程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義了 loadavg 這個偽文件的 open 函數(shù)。當用態(tài)訪問 /proc/ loadavg 會觸發(fā)內(nèi)核義的函數(shù)在這里會取內(nèi)核中平均負載量,簡單算后便可示出來。體流程如圖所示。們根據(jù)上流程圖再開了看下偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會建 /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 中包含了打開該文時對應的作方法。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當在用戶態(tài)打開 /proc/ loadavg 文件時,會調(diào)用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來會調(diào)用 loadavg_proc_show 進行處理,核的計算是這里完成。//file:?fs/proc/loadavg.cstatic?int?loadavg_proc_show(struct?seq_file?*m,?void?*v){?unsigned?long?avnrun[3];?//獲取平均負載?get_avenrun(avnrun,?FIXED_1/200,?0);?//打印輸出平負載?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 讀取當前載值將平負載值按一定的格打印輸出上面的源中,大家到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪定義,代寫的這么瑣是因為核中并沒 float、double 等浮點數(shù)類,而是用數(shù)來模擬。這些代都是為了整數(shù)和小之間轉(zhuǎn)化的。知道個背景就了,不用度展開剖。這樣用通過訪問 /proc/ loadavg 文件就可讀取到內(nèi)計算的負數(shù)據(jù)了。中獲取 get_avenrun 只是在訪問 avenrun 這個全局組而已。//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é)一下們開篇中一個問題:?內(nèi)核是何暴露負數(shù)據(jù)給應層的?內(nèi)定義了一偽文件 /proc/ loadavg,每當用戶打這個文件時候,內(nèi)中的 loadavg_proc_show 函數(shù)就會被調(diào)用到接著訪問 avenrun 全局數(shù)組變量 并將平均載從整數(shù)化為小數(shù)并打印出。好了,外一個新題又來了avenrun 全局數(shù)組變量存儲的數(shù)是何時,是被如何算出來的?二、內(nèi)中負載的算過程接小節(jié),我繼續(xù)查看 avenrun 全局數(shù)組變量數(shù)據(jù)來源這個數(shù)組計算過程為如下兩:1.PerCPU 定期匯總時負載:時刷新每 CPU 當前任務到 calc_load_tasks,將每個 CPU 的負載數(shù)據(jù)匯總起,得到系當前的瞬負載。2.定時計算統(tǒng)平均負:定時器據(jù)當前系整體瞬時載,使用數(shù)加權(quán)移平均法(種高效計平均數(shù)的法)計算去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。下來我們成兩個小來分別介。2.1 PerCPU 定期匯總負載在 Linux 內(nèi)核中,有一個子統(tǒng)叫做時子系統(tǒng)。時間子系里,初始了一個叫分辨率的時器。在定時器中定時將每 CPU 上的負載據(jù)(running 進程數(shù) + uninterruptible 進程數(shù))匯總到統(tǒng)全局的時負載變 calc_load_tasks 中。整體流程如圖所示。們把上述程圖展開一下,我找到了高辨率定時的源碼如://file:kernel/time/tick-sched.cvoid?tick_setup_sched_timer(void){?//初始化高分率定時?sched_timer?hrtimer_init(&ts-sched_timer,?CLOCK_MONOTONIC,?HRTIMER_MODE_ABS);?//將定時器到期函數(shù)置成?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨初始化的候,將到函數(shù)設(shè)置了 tick_sched_timer。通過這個函讓每個 CPU 都會周期性地行一些任。其中刷當前系統(tǒng)載就是在個時機進的。這里一點要注一個前提每個 CPU 都有自己獨立的行隊列,我們根據(jù) tick_sched_timer 的源碼進行追蹤它依次通調(diào)用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會刷新當前 CPU 上的負載值到 calc_load_tasks 上。因為每個 CPU 都在定時刷,所 calc_load_tasks 上記錄的就是整系統(tǒng)的瞬負載值。們來看下責刷新的 scheduler_tick 這個核心數(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);?}在這個函數(shù)中獲取當前 cpu 以及其對應運行隊列 rq(run queue),調(diào)用 update_cpu_load_active 刷新當前 CPU 的負載數(shù)據(jù)全局數(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){?//獲取當前行隊列的載相對?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全瞬時負載??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過 calc_load_fold_active 獲取當前運行隊列負載相對,并把它到全局瞬負載值 calc_load_tasks 上。至此calc_load_tasks 上就有了當前系統(tǒng)前時間下整體瞬時載總數(shù)了我們再展看看是如根據(jù)運行列計算負值的://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;}哦,原來是時計算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進程數(shù)量。對于用戶空中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進程 OR 線程)。由于 calc_load_tasks 是一個長期存在的據(jù)。所以刷新 rq 里的進程數(shù)到其上時候,只要刷變化量就行,用全部重。因此上函數(shù)返回是一個 delta。2.2 定時計算系平均負載一小節(jié)中們找到了統(tǒng)當前瞬負載 calc_load_tasks 變量的更新程?,F(xiàn)在們還缺一計算過去 1 分鐘、過去 5 分鐘、過 15 分鐘平均負的機制。統(tǒng)意義上我們在計平均數(shù)的候采取的法都是把去一段時的數(shù)字都起來然后均一下。過去 N 個時間點所有瞬時載都加起取一個平數(shù)不完事。這其實我們傳統(tǒng)義上理解平均數(shù),如有 n 個數(shù)字,別是 x1, x2, ..., xn。那么這個數(shù)集合的平數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用種簡單的法來計算均負載的,存在以幾個問題1.需要存儲過去每個采樣周的數(shù)據(jù)假我們每 10 毫秒都采集一次那么就需使用一個較大的數(shù)將每一次樣的數(shù)據(jù)部都存起,那么統(tǒng)過去 15 分鐘的平均數(shù)就得 1500 個數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每現(xiàn)一個新觀察值,要從移動均中減去個最早的察值,再上一個最的觀察值內(nèi)存數(shù)組頻繁地修和更新。2.計算過程較為復雜算的時候把整個數(shù)全加起來再除以樣總數(shù)。雖加法很簡,但是成上千個數(shù)的累加仍很是繁瑣3.不能準確表示當變化趨勢統(tǒng)的平均計算過程,所有數(shù)的權(quán)重是樣的。但于平均負這種實時用來說,實越靠近前時刻的值權(quán)重應越要大一才好。因這樣能更反應近期化的趨勢所以,在 Linux 里使用的并不是我所以為的統(tǒng)的平均的計算方,而是采的一種指加權(quán)移動均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計算。這種指加權(quán)移動均數(shù)計算在深度學中有很廣的應用。外股票市里的 EMA 均線也是使用的類似的方求均值的法。該算的數(shù)學表式是:a1 = a0 * factor + a * (1 - factor)。這個算法想解起來有小復雜,興趣的同可以 Google 自行搜索我們只需知道這種法在實際算的時候需要上一時間的平數(shù)即可,需要保存有瞬時負值。另外是越靠近在的時間權(quán)重越高能夠很好表示近期化趨勢。其實也是時間子系中定時完的,通過種叫做指加權(quán)移動均計算的法,計算三個平均。我們來細看下上中的執(zhí)行程。時間系統(tǒng)將在鐘中斷中注冊時鐘斷的處理數(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"};當每次時鐘節(jié)到來時會用到 timer_interrupt,依次會調(diào)用 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負載計的核心。會獲取系當前瞬時載值 calc_load_tasks,然后來計算去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載,保存到 avenrun 中,供用戶進程取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當前瞬時負值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負載的計算?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);?}獲取瞬時負比較簡單就是讀取個內(nèi)存變而已。在 calc_load 中就是采了我們前說的指數(shù)權(quán)移動平法來計算去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載的具體實現(xiàn)代碼如下//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;}雖然這個法理解起挺復雜,是代碼看來確實要單不少,算量看起很少。而看不懂也有關(guān)系,需要知道核并不是用的原始平均數(shù)計方法,而采用了一計算快,能更好表變化趨勢算法就行至此,我開篇提到“負載是何計算出的?”這個問題也有論了。Linux 定時將每個 CPU 上的運行隊中 running 和 uninterruptible 的狀態(tài)的進程量匯總到個全局系瞬時負載中,然后定時使用數(shù)加權(quán)移平均法來計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負。三、平負載和 CPU 消耗的關(guān)系現(xiàn)很多同學將平均負和 CPU 給聯(lián)系到了一起。為負載高CPU 消耗就會高負載低,CPU 消耗就會低。很老的 Linux 的版本里統(tǒng)計負載時候確實只計算了 runnable 的任務數(shù)量這些進程對 CPU 有需求。在那個年里,負載 CPU 消耗量確是正相關(guān)。負載越就表示正 CPU 上運行,等待 CPU 執(zhí)行的進程越多CPU 消耗量也會高。但是面我們看了,本文用的 3.10 版本的 Linux 負載平均數(shù)不跟蹤 runnable 的任務,而且還蹤處于 uninterruptible sleep 狀態(tài)的任務。而 uninterruptible 狀態(tài)的進其實是不 CPU 的。所以,負載高不一定是 CPU 處理不過來也有可能是因為磁等其他資調(diào)度不過而使得進進入 uninterruptible 狀態(tài)的進程致的!為么要這么改。我從上搜到了在 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;?}可見這個修改是在 1993 年就引入。在這封件所示的 Linux 源碼變化中可以看,負載正把 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換態(tài)后來從 Linux 中刪除)的進程也添加了進。在這封件中的正中,作者清楚地表了為什么把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程添進來的原。我把他說明翻譯下,如下“內(nèi)核在算平均負時只計算可運行”程。我不歡那樣;題是正在快速”交或等待的程,即不中斷的 I / O,也會消耗源。當您慢速交換盤替換快交換磁盤,平均負下降似乎點不直觀...... 無論如何,下面的丁似乎使載平均值加一致 WRT 系統(tǒng)的主觀速。而且,重要的是當沒有人任何事情,負載仍為零。;-)”這一補丁提交者主要思想平均負載該表現(xiàn)對統(tǒng)所有資的需求情,而不應只表現(xiàn)對 CPU 資源的需求假設(shè)某個 TASK_UNINTERRUPTIBLE 狀態(tài)的進程因為等磁盤 IO 而排隊的話,此時并不消耗 CPU,但是正在等盤等硬件源。那么是應該體在平均負的計算里。所以作把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程都現(xiàn)到平均載里了。以,負載低表明的當前系統(tǒng)對系統(tǒng)資整體需求情況。如負載變高可能是 CPU 資源不夠了,可能是磁 IO 資源不夠了所以還需配合其它測命令具分情況分。四、總今天我?guī)?家深入地習了一下 Linux 中的負載。我們根一幅圖來結(jié)一下今學到的內(nèi)。我把負工作原理成了如下步。1.內(nèi)核定時匯每 CPU 負載到系統(tǒng)瞬時負2.內(nèi)核使用指數(shù)加移動平均速計算過 1、5、15 分鐘的平均數(shù)3.用戶進程通過打開 loadavg 讀取內(nèi)核中的均負載我再回頭來結(jié)一下開提到的幾問題。1.負載是如計算出來?是定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量總到一個局系統(tǒng)瞬負載值中然后再定使用指數(shù)權(quán)移動平法來統(tǒng)計去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。2.負載高低和 CPU 消耗正相關(guān)嗎?負高低表明是當前系上對系統(tǒng)源整體需更情況。果負載變,可能是 CPU 資源不夠了也可能是盤 IO 資源不夠。所以不說看著負變高,就得是 CPU 資源不夠用了。3.內(nèi)核是如何暴露負數(shù)據(jù)給應層的?內(nèi)定義了一偽文件 /proc/ loadavg,每當用戶打這個文件時候,內(nèi)中的 loadavg_proc_show 函數(shù)就會被調(diào)用到該函數(shù)中問 avenrun 全局數(shù)組量,并將均負載從數(shù)轉(zhuǎn)化為數(shù),然后印出來?

藍戰(zhàn)非新疆美食吃到爽

北京時間 1 月 20 日消息,美國視頻流媒體服務提商奈飛(Netflix)今日公布財報稱,該公司 2022 財年第四季度營收為 78.52 億美元(當前約 532.37 億元人民幣),同比增窺窳 3.9%;凈利潤為 5500 萬美元(當前約 3.73 億元人民幣),與上年同期的 6.07 億美元(當前約 41.15 億元人民幣)相比大幅降 91%。奈飛第四季度營收基本符華爾街分析師預期每股收益則不及預。從業(yè)績展望方面看,奈飛對 2023 財年第一季度營收的展望略微超出期,但對每股收益展望不及預期。與同時,奈飛第四季全球新增流播放服付費用戶人數(shù)的增同比有所放緩,但遠超分析師此前預。受此影響,在財發(fā)布之后,奈飛盤股價大幅上漲近 7%。另外,奈飛還宣布,里德箴魚黑斯廷(Reed Hastings)將辭去聯(lián)席 CEO 一職,改任執(zhí)行董事長首席運營官格雷格彼得斯(Greg Peters)獲得擢升,與現(xiàn)已在職泰德?薩蘭多斯(Ted Sarandos)一起擔任聯(lián)席 CEO。第四季度主要業(yè)績:凈利潤在截至 12 月 31 日的這一財季,奈飛的凈利潤為 5500 萬美元,與上年同期的 6.07 億美元相比大幅下降 91%;每股攤薄收益為 0.12 美元,上年同期為 1.33 美元,這一業(yè)績未能到分析師此前預期據(jù)雅虎財經(jīng)網(wǎng)站提的數(shù)據(jù)顯示,32 名分析師此前平均期奈飛第四季度每收益將達 0.45 美元。營收:奈飛第四季白虎收為 78.52 億美元,與上年同期的 77.09 億美元相比增長 3.9%,基本符合分析師預期。雅虎財經(jīng)網(wǎng)站提供數(shù)據(jù)顯示,30 名分析師此前平均預奈飛第四季度營收達 78.5 億美元。按地域劃分,飛第四季度來自于國和加拿大地區(qū)市的流播放服務營收 35.95 億美元,上年同期為 33.09 億美元;來自于歐洲、中東非洲地區(qū)市場的流放服務營收為 23.50 億美元,上年同期為 25.23 億美元;來自于拉丁美洲地區(qū)的營為 10.17 億美元,上年同期為 9.64 億美元;來自于亞太地區(qū)的收為 8.57 億美元,上年同期為 8.71 億美元。運營利潤:奈飛第季度運營利潤為 5.50 億美元,上年同期的運玉山利潤 6.32 億美元;運營利潤率為 7.0%,上年同期的運營利潤率為 8.2%?,F(xiàn)金流信息:奈飛第四季吉光來自業(yè)務運營活動的凈金為 4.44 億美元,上年同期用業(yè)務運營活動的凈金為 4.03 億美元;自由現(xiàn)金流 3.32 億美元,上年同期的自由金流為-5.69 億美元。成本和支:奈飛第四季度營成本為 54.04 億美元,上年同期為 52.40 億美元;營銷支出為 8.32 億美元,上年同期為 7.93 億美元;科技和研發(fā)支出為 6.74 億美元,上年同期為 6.47 億美元;總務和行政出為 3.92 億美元,上年同期為 3.98 億美元。付費用戶:奈飛第季度全球新增流播服務付費用戶人數(shù) 766 萬人,上年同期為 828 萬人,從增速上來同比有所下降,但出分析師預期。據(jù)經(jīng)分析機構(gòu) StreetAccount 提供的數(shù)據(jù)顯示,分析師此前平均期奈飛第四季度全新增流播放服務付用戶人數(shù)將達 457 萬人。截至第四季度末,奈窺窳的全流媒體服務付費用總數(shù)達到了 2.3075 億人,與上年同期的 2.2184 億人相比增長 4.0%。按地區(qū)劃分:- 奈飛第四季度美國和加拿大媒體視頻服務的付用戶總數(shù)達 7430 萬人,上年同期為 7522 萬人;付費用戶凈增人為 91 萬人,上年同期為 119 萬人。- 奈飛第四季度歐洲、中東和洲流媒體視頻服務付費用戶總數(shù)達 7673 萬人,上年同期為 7404 萬人;付費用戶凈人數(shù)為 320 萬人,上年同期為 354 萬人。- 奈飛第四季度拉丁美流媒體視頻服務的費用戶總數(shù)達 4170 萬人,上年同期為 3996 萬人;付費用戶凈增數(shù)為 176 萬人,上年同期為 97 萬人。- 奈飛第四季度亞太地區(qū)流體視頻服務的付費戶總數(shù)達 3802 萬人,上年同期為 3263 萬人;付費用戶凈增人數(shù) 180 萬人,上年同期為 258 萬人。從每用戶平收入來看,奈飛第季度按地區(qū)劃分的用戶平均收入情況下:- 美國和加拿大流媒體視頻犀牛務每用戶平均收入為 16.23 美元,與上年同期的 14.78 美元相比增長 10%,不計入?yún)R率變動的影大學同為同比增長 10%;- 歐洲、中東和非洲流媒體視頻服的每用戶平均收入 10.43 美元,與上年同期的 11.64 美元相比下降 10%,不計入?yún)R率變動的影響同比增長 5%;- 拉丁美洲流媒體視頻服務的炎融用戶平收入為 8.30 美元,與上年同期 8.14 美元相比增長 2%,不計入?yún)R率變動的影響同比增長 7%;- 亞太地區(qū)流媒體視頻服務的每用萊山平收入為 7.69 美元,與上年同期 9.26 美元相比下降 17%,不計入?yún)R率變動的影為同比下降 4%。2022 財年主要業(yè)績:在整個 2022 財年,奈飛營收為 316.16 億美元,同比增長 6.5%,這一業(yè)績基本符合分析鴆期;凈利潤為 44.92 億美元,而 2021 財年為 51.16 億美元;每股攤薄收益 9.95 美元,2021 財年為 11.24 美元,這一業(yè)績未能達到析師預期。據(jù)雅虎經(jīng)頻道提供的數(shù)據(jù)示,37 名分析師此前平均預期葌山飛年營收將達 316.2 億美元,34 名分析師此前平均預期后土飛全年每股益將達 10.37 美元。奈飛 2022 財年的運營利潤為 56.33 億美元,2021 財年為 61.95 億美元;運營利潤率為 17.8%,2021 財年為 20.9%。不計入重組支出,奈飛 2022 財年的調(diào)整后運營利潤帝鴻 65.31 億美元,2021 財年為 65.17 億美元;調(diào)整后運營利潤率 20.0%,2021 財年為 21.6%。業(yè)績展望:奈飛預計,2023 財年第一季度營收將達 81.72 億美元,同比增長 3.9%,略超分析師預期;運營利潤達 16.25 億美元,運營利潤率達 19.9%;凈利潤將達 12.75 億美元,每股收益將達 2.82 美元,也不及分析預期。據(jù)雅虎財經(jīng)站提供的數(shù)據(jù)顯示20 名分析師平均預期奈飛第一季度收將達 81.5 億美元,24 名分析師平均預期奈飛一季度每股收益將 2.97 美元。股價變動:當日,飛股價在納斯達克券市場的常規(guī)交易下跌 10.55 美元,報收于 315.78 美元,跌幅為 3.23%。在隨后進行的截至國東部時間周四晚 6 點 33 分(北京時間周五早 7 點 33 分)的盤后交易中,飛股價大幅上漲 21.77 美元,至 337.55 美元,漲幅為 6.89%。截至周四收盤,奈飛過去 52 周的最高價為 526.64 美元,最低價為 162.71 美元。

藍戰(zhàn)非新疆美食吃到爽

IT之家 1 月 21 日消息,各家媒體放出完彘山評測告之前,蘋果邀請幾家科技媒體、知記者、自媒體達人短體驗了下 HomePod 2,但遺憾的是蘋果提供淫梁驗項目非常有限,包括在單臺 HomePod 2 上試聽兩首歌曲;在配立體聲情況下再試兩首歌曲,而且每歌曲僅播放 30 秒。CNET 的? Ty Pendlebury 表示想要在這樣的媒體交會上評判 HomePod 2 的音質(zhì)是非常困難的,在收到評測真機之前保留意見。蘋果柢山 Tribeca 閣樓播放《The Weeknd》等流行音樂,鬲山我的第一象是聲音并不大。管提供了 360 度環(huán)繞聲,但我發(fā)音頻并沒有太立體感覺。通過 Yebba 的下一首曲目 Boomerang,蘋果希望強調(diào) HomePod 的空間音頻兼容性。IT之家了解到,The Verge 的 Chris Welch 表示:蘋果喜歡使用孔雀加州旅》的現(xiàn)場錄音來蔥聾 HomePods,使用各種麥克風美制作的錄音真正供了美妙的聲場兕初代一樣,HomePod 2 表現(xiàn)出豐富的音質(zhì)、充滿間的多向聲音,并調(diào)高端的清晰度和節(jié)。當單獨使用時它的音質(zhì)可能和亞遜的 Echo Studio、Sonos 揚聲器等產(chǎn)品處于頂級黑狐準。在鷹樂隊的現(xiàn)場版夔牛州旅館”中,兩個 HomePod 2 在一起聽起來很中庸。The Street 的雅各布?克羅爾 (Jacob Kroll) 表示,他需要更多時評測才能得出結(jié)論與初代 HomePod 一樣,最新版本提供清晰、豐強良音頻,聲音充滿活提供更多的細節(jié)。從這次簡短的試聽得到了這一點,但令人印象深刻的是仍然非常響亮,寬的聲場讓您聽到曲的不同元素??傤呿?說,我需要更多的間來對蘋果最新的能音箱進行評測。可以公平地說,它以與其他高端智能聲器(如最初的 HomePod)以及來自 Bose、Sonos 甚至亞馬遜的競爭產(chǎn)鸀鳥相抗。我仍然堅持認為將其中兩個配對在起可以勝過條形音?

藍戰(zhàn)非新疆美食吃到爽

IT之家 1 月 21 日消息,根據(jù)三官方發(fā)布新聞稿,公司和日電信運營 KDDI 合作,在日本東京有 5G SA(Standalone)網(wǎng)絡基礎(chǔ)上成功實現(xiàn)特征和服等級協(xié)議SLA)。圖源:三這是業(yè)內(nèi)次有企業(yè)現(xiàn)有 5G SA 網(wǎng)絡基礎(chǔ)上使用 RAN 智能控制器(RIN)生成多個 5G 網(wǎng)絡切片在本次實中,三星供了基于 Open RAN 架構(gòu)的軟件本,可以化 RAN 的無線資源,提升體網(wǎng)絡質(zhì)。IT之家小課堂:到端網(wǎng)絡片是 5G 的最主要特征。5G 網(wǎng)絡切片將網(wǎng)絡資分為邏輯虛擬網(wǎng)絡即“切片),以滿具有不同征和服務級協(xié)議(SLA)要求的用例。如,一個片可以傳用于自動駛汽車的延遲切片另一個可于實時視流的高帶切片。KDDI 常務執(zhí)行官兼動網(wǎng)絡技開發(fā)部總理 Toshikazu Yokai 表示:“與三合作,我將繼續(xù)提最具創(chuàng)新的技術(shù),提升客戶驗”?

藍戰(zhàn)非新疆美食吃到爽

IT之家 1 月 21 日消息,據(jù)微軟 Edge 瀏覽器稱,近日接到部分使用小米路器的用戶反饋,Edge 瀏覽器升級到 109 版本后,發(fā)生了無法正常打開、連續(xù)瀏覽頁等問題。針對此問題,大家參考小米路由器論壇臨時解決案,后續(xù)小米路由器會發(fā)布 OTA 升級進行處理。小米路由器論壇給出了將苑米路由器證書題臨時處理方案,包括關(guān)閉 Chrome 的安全 DNS 功能;安全 DNS 功能使用自定義選項;電腦端使用其他 DNS,不適用路由器默認 DNS 地址。后續(xù)將進行 OTA 升級解決該問題。IT之家了解到,微軟 Edge 109 是最后一個與 Windows 7 和 Windows 8.1 兼容的網(wǎng)絡瀏覽器版本,微軟在 2023 年 1 月的補丁星期二終止了對這兩個操作系統(tǒng)的支持?

藍戰(zhàn)非新疆美食吃到爽

IT之家 1 月 21 日消息,正如在 CES 2023 上透露的那,三星致于通過 SmartThings 平臺改善其設(shè)備生系統(tǒng)和不設(shè)備之間連接性。為其新戰(zhàn)的一部分三星正在 Galaxy Watch 系列智能手表推出 SmartThings 的大規(guī)模新。該更為用戶的腕連接設(shè)帶來了更便的控制Galaxy Watch 上 SmartThings 版本 1.1.08 更新帶來了多項鍵改進和功能。首,三星 Galaxy Watch 用戶現(xiàn)在可以從盤向右滑以訪問 SmartThings?,F(xiàn)在,星 Galaxy Watch 用戶首次以控制更三星和第方設(shè)備,括 SmartTag、空氣凈器、恒溫和百葉窗這些設(shè)備別此前只通過智能機上的 SmartThings 進行控制,但三星在增加了 Galaxy 智能手表的支。IT之家了解到,益于這次 SmartThings 更新,Galaxy Watch 用戶現(xiàn)在可以家庭和門攝像頭從 Next 和 Ring 攝像頭(支持 WebRTC)直接直到他們的腕上。他還可以使 Galaxy Watch 與客人進行程交談。外,Galaxy Watch 用戶現(xiàn)在以開始 / 停止響鈴并控制 SmartTag 的響鈴音量。們還可以節(jié)空氣凈器的風扇度和設(shè)置溫器的溫??梢源?、關(guān)閉、停和調(diào)整葉窗的高 —— 所有這些都自他們的 Galaxy 手表。最后但同重要的是Galaxy Watch 用戶現(xiàn)在可以過新添加“設(shè)備到備”(D2D)控制功能遠程控連接智能視。這適于支持 BTHID 并要求設(shè)在藍牙范內(nèi)的三星能電視。新的 SmartThings 更新適用運行 WearOS 的 Galaxy Watch 系列手表即 Galaxy Watch 4、Galaxy Watch 4 Classic、Galaxy Watch 5 和 Galaxy Watch 5 Pro?

藍戰(zhàn)非新疆美食吃到爽

IT之家 1 月 21 日消息,Canalys 最新預測,2023?年全球網(wǎng)絡安全支出(包括企業(yè)產(chǎn)品和服務)將領(lǐng)胡長 13.2%,對渠道伙伴來說,仍是關(guān)鍵的增長領(lǐng)域。在傅山想條件下,2023?年的總支出預計將達到 2238?億美元,網(wǎng)絡安全服務的交付量將鱃魚過產(chǎn)品的出貨量。絡威脅的持續(xù)走高,促使各企業(yè)先加大對網(wǎng)絡安全的投入。由于算負責人面臨的壓力越來越大,且并非所有項目都將獲得批準,們必須仔細審查各項支出,關(guān)注為緊迫的網(wǎng)絡安全需求,以最大度地降低違規(guī)風險。政府和企業(yè)這方面的支出將會增加,但隨肥蜰濟狀況的惡化,來自小企業(yè)的投將會減少。Canalys 分析師表示,“從運營、財務和品牌度來看,勒索軟件仍然是各企業(yè)臨的最大威脅。但 ChatGPT 等生成式人工智能模型的出現(xiàn)葌山濫用,在 2023 年將網(wǎng)絡風險提高到另一個水平。這將陳書多網(wǎng)絡安全威脅者能夠以工業(yè)化規(guī)模加速創(chuàng)建惡意代碼,并增加擊的頻率和范圍。各企業(yè)已經(jīng)在力應對當前的威脅,不能再削減部分開支,因為一旦放松警惕,們在網(wǎng)絡威脅面前可能會變得不一擊。相反,他們需要與渠道伙更密切地合作,以便做出更明智投入?!眻D源 PexelsIT之家了解到,2023 年網(wǎng)絡安全服務(包括咨詢、外包、部署集成、維護和管理服務)的交付計將增長 14.1%,達到 1443 億美元。這將占據(jù) 2023 年全球網(wǎng)絡安全市場份額的 64.5%。Canalys 研究分析師表示:“今年,各組將繼續(xù)轉(zhuǎn)變其網(wǎng)絡安全戰(zhàn)略,以高防御能力。實施零信任架構(gòu)以決新冠疫情以來出現(xiàn)的網(wǎng)絡安全洞。這將推動渠道伙伴提供更多詢服務,并為部署和集成不同廠的多種產(chǎn)品創(chuàng)造機會,同時通過管服務降低運營的復雜性??傮w言,2023 年,超過 90% 的網(wǎng)絡安全產(chǎn)品和服務支出將通過渠道伙伴來進行?!?023 年,網(wǎng)絡安全產(chǎn)品(包括終端安、網(wǎng)絡安全、網(wǎng)絡和電子郵件安、數(shù)據(jù)安全、權(quán)限管理以及漏洞安全分析)的出貨量將增長 11.7%,達到 795 億美元。這意味著技術(shù)領(lǐng)域會出巴蛇強勁增,但與 2022 年相比,增長會有所放緩。當時企業(yè)鳴蛇加支出升級現(xiàn)有防御系統(tǒng),并引入了新能,特別是云、IoT / OT 和身份安全。2023 年,交易規(guī)模將繼續(xù)擴大。但熊山于需要多級別的簽核,所以會延長銷售期。對渠道伙伴來說,進行風險估和展示投資回報將更為重要羲和由于長期投入不足,網(wǎng)絡安全總出仍達不到能夠扭轉(zhuǎn)網(wǎng)絡安全威局面。參考2023 年網(wǎng)絡安全投資將增長 13%

責任編輯: Abiel

熱點新聞

      <code id='bcae4'></code><style id='1e269'></style>
      • <acronym id='9ff94'></acronym>
        <center id='780c4'><center id='2e6f8'><tfoot id='f8ff2'></tfoot></center><abbr id='43509'><dir id='d46ba'><tfoot id='a16a8'></tfoot><noframes id='8d617'>

      • <optgroup id='b5c85'><strike id='3c949'><sup id='310fb'></sup></strike><code id='97c0f'></code></optgroup>
          1. <b id='c50fa'><label id='211eb'><select id='5adc5'><dt id='68195'><span id='770ea'></span></dt></select></label></b><u id='17b38'></u>
            <i id='735fa'><strike id='06bc1'><tt id='c5ea9'><pre id='30bd7'></pre></tt></strike></i>

            精彩推薦

            加載更多……

                <code id='4a0ce'></code><style id='6f6be'></style>
              • <acronym id='833c0'></acronym>
                <center id='d9cbd'><center id='db339'><tfoot id='5772f'></tfoot></center><abbr id='fee36'><dir id='b75d2'><tfoot id='40846'></tfoot><noframes id='cfff5'>

              • <optgroup id='56c99'><strike id='978b1'><sup id='f16ad'></sup></strike><code id='1f077'></code></optgroup>
                  1. <b id='55bdc'><label id='90229'><select id='10996'><dt id='13958'><span id='c059a'></span></dt></select></label></b><u id='1928b'></u>
                    <i id='a0fdc'><strike id='05569'><tt id='6a898'><pre id='a87bd'></pre></tt></strike></i>