15.7 研發(fā)心得——最好版本的臺(tái)前幕后

15.7 終于如期地發(fā)布了……好吧冒掌,也就晚了2個(gè)工作日……畢竟這么好的版本,多等兩天也可以的株婴,對吧怎虫。需要多解釋一句的是,我們之所以也沒有按照往常的套路——拖到周五發(fā)困介,是因?yàn)橹芪鍎偤檬乔槿斯?jié)大审,畢竟程序員找個(gè)女朋友不容易,所以就拖了兩天……這應(yīng)該是個(gè)好借口吧 :P

發(fā)完系統(tǒng)第一件事情當(dāng)然就是寫《研發(fā)心得》咯座哩,不知道從什么時(shí)候開始徒扶,《研發(fā)心得》成了發(fā)布標(biāo)配,上午發(fā)系統(tǒng)根穷,晚上就要《研發(fā)心得》姜骡,我只能微笑著說……嗯,挺好的屿良!不過雖說是研發(fā)心得圈澈,但是別人看了我的心得以后都說像軟文。我的想法是這樣的:像軟文就像軟文嘛尘惧,讓各位支持deepin的朋友看得舒舒服服的同時(shí)還能了解新功能康栈,多好!

不過這次我準(zhǔn)備換個(gè)風(fēng)格喷橙,重點(diǎn)是真實(shí)啥么。所以,這次的心得我準(zhǔn)備說說 15.7 這個(gè)版本的臺(tái)前幕后重慢。

臺(tái)前&幕后

“這是我用過的最好的deepin版本”饥臂。

我預(yù)測應(yīng)該有很多用戶會(huì)跟我有同樣的想法逊躁,畢竟似踱,對于發(fā)了這么多版本的我來說,15.7 是第一個(gè)版本讓我有重新完整安裝一次這樣沖動(dòng)的版本稽煤。三年多以來核芽,每逢系統(tǒng)發(fā)布前,我都會(huì)挑一個(gè)良辰吉日加上一個(gè)好時(shí)間酵熙,這個(gè)時(shí)間其實(shí)主要取決于版本發(fā)布的延期情況而定轧简,隆重地安裝一下即將發(fā)布的新版本的ISO,說是為了測試一下其實(shí)是騙人的匾二,畢竟我也測試不出什么bug來……主要是裝一下心里面爽啊哮独,你們要明天才能下載拳芙,我今天就用上了没宾,呵呵呵……

雖說每次的ISO我都安裝過凉蜂,但是我從來沒有舍得把我現(xiàn)在在用的系統(tǒng)格式化掉重新安裝蔚约,因?yàn)檫@個(gè)老家伙從deepin切換倉庫到Debian我重新安裝了一次系統(tǒng)開始就一直陪伴著我蘑辑,沒有必要的話先鱼,我是想一直讓它繼續(xù)往上升級的渴析。直到這次15.7發(fā)布啄寡,我感覺它又是一次值得紀(jì)念的發(fā)布才想著來一次完整重裝拾弃,不過沖動(dòng)歸沖動(dòng)讯檐,我還是按捺住了心中那團(tuán)火——還是沒有重新安裝羡疗,因?yàn)樗紒硐肴ィ壣蟻淼囊彩且粯拥穆?:)

這次升級可以分為兩大部分别洪,一部分是DDE的優(yōu)化叨恨,另一部分是倉庫同步Debian上游。從一個(gè)用戶的角度出發(fā)挖垛,我覺得吸引我的地方特碳,或者說值得用戶期待的地方主要有這么幾個(gè):

更快的啟動(dòng)速度

這個(gè)主要得益于“林姐”親自操刀的文件預(yù)熱技術(shù)warm-sched,它主要的原理是這樣的晕换,大家知道操作系統(tǒng)在啟動(dòng)的過程中午乓,會(huì)進(jìn)行大量的IO操作,這個(gè)在CPU性能不是問題的平臺(tái)上就是啟動(dòng)慢的罪魁禍?zhǔn)琢苏⒆迹蠹疫€知道Linux內(nèi)核其實(shí)本身是有文件緩存機(jī)制的益愈,被緩存的文件訪問會(huì)非常非常快夷家,所以如果我們在系統(tǒng)加載的適當(dāng)時(shí)候能進(jìn)行一定的預(yù)熱蒸其,那么系統(tǒng)加載的時(shí)間當(dāng)然就會(huì)大大縮短了。

不過這個(gè)會(huì)導(dǎo)致的一個(gè)問題就是库快,用戶登錄的速度變得飛快(從原來的10s+變成3s)摸袁,但是系統(tǒng)好像在deepin水波紋的時(shí)間似乎更長了,其實(shí)不用”似乎“义屏,真的會(huì)這樣靠汁,文件預(yù)熱技術(shù)不是神話,它沒辦法吃掉那部分加載文件的時(shí)間闽铐,它能做到的只是在合適的時(shí)間點(diǎn)預(yù)熱下一個(gè)階段需要的文件蝶怔。

”這不是拆東墻補(bǔ)西墻么?“你可能會(huì)這么問兄墅,但是我要告訴你還真不是踢星,如果沒有預(yù)熱,系統(tǒng)加載文件的過程是”亂序“的隙咸,這里的亂序是指文件存放不一定是順序存放在磁道上的沐悦,亂序的文件訪問會(huì)導(dǎo)致磁盤訪問的過程中轉(zhuǎn)來轉(zhuǎn)去的成洗,效率低下;相反藏否,warm-sched不僅只是對文件預(yù)熱泌枪,加載的過程可以保證磁盤的順序訪問,文件多了的話秕岛,這部分優(yōu)化還是比較可觀的……

我記得以前有位同事總是喜歡開玩笑說”蒼蠅也是肉啊“碌燕,當(dāng)時(shí)在飯桌上沒少讓人倒胃口,但是這句話用在性能優(yōu)化继薛、以及上面這個(gè)例子上算是再合適不過了修壕。

更少的資源占用

首先是電量,如果你是筆記本的話遏考,應(yīng)該能感受到筆記本續(xù)航的提升慈鸠,deepin測試人員實(shí)測的數(shù)據(jù)是以前3小時(shí)續(xù)航能力的筆記本,待機(jī)會(huì)多出30分鐘+的時(shí)間灌具,也就是提升差不多有17%青团,跟使用powerstat這個(gè)工具測試的效果基本相差不大。那是不是原來待機(jī)4個(gè)小時(shí)的筆記本咖楣,也只會(huì)多出30分鐘的續(xù)航時(shí)間呢督笆?并不是的,因?yàn)檫@是一個(gè)功耗比例上的變化诱贿,這次優(yōu)化以后理論上可以增加的待機(jī)時(shí)間就是 原來的待機(jī)時(shí)間x17% 了娃肿,如果你的電池健康程度夠的話,應(yīng)該能有更大的優(yōu)化效果珠十。

不過料扰,這些都是在使用電池的情況下的數(shù)據(jù),因?yàn)槟J(rèn)情況下deepin系統(tǒng)只有在拔掉電源的情況下才會(huì)自動(dòng)進(jìn)入節(jié)能模式焙蹭,如果你想在連接電源的情況下也開啟節(jié)能模式晒杈,我是說假如你真這么環(huán)保的話,你可以在控制中心的電源模塊手動(dòng)打開節(jié)能模式孔厉;相反拯钻,如果你像我一樣不在乎耗電,只追求卓越的性能烟馅,你也可以隨時(shí)把節(jié)能模式關(guān)掉说庭,大丈夫就是這么帥然磷,不怕編譯的時(shí)候機(jī)器燙手郑趁;總之,由著你的性子來姿搜!

另外一個(gè)能明顯感受到的變化是開機(jī)內(nèi)存的減少寡润,這里所說的開機(jī)內(nèi)存是指在沒有任何開機(jī)啟動(dòng)項(xiàng)的情況下捆憎,DDE達(dá)到穩(wěn)定狀態(tài)的一個(gè)內(nèi)存值,由原來的 1.1G 占用降低到 830M 左右梭纹,在使用獨(dú)顯的情況下躲惰,內(nèi)存占用會(huì)更低,簡直令人發(fā)指变抽!好處是什么呢础拨?更低的內(nèi)存占用意味著DDE變得更加輕量,應(yīng)用程序可以占用更多的系統(tǒng)資源绍载,例如你是chrome這個(gè)內(nèi)存占用大戶的用戶诡宗,15.7 可以讓你在系統(tǒng)不變卡的情況下多開十來個(gè)標(biāo)簽頁呢,是不是很開心击儡?

不過做這些優(yōu)化的過程中最讓我感到意外的是DDE對電量消耗的“助攻”竟然沒有大家預(yù)想的那么多塔沃,進(jìn)程抽風(fēng)性地CPU占用高、間歇性地進(jìn)程狀態(tài)切換等居然連硬件功耗的零頭都占不到阳谍,不過該改的地方一個(gè)都不少蛀柴,所以,DDE 的CPU占用高的問題在15.7中也可以不用再見了矫夯。

更新的軟件和驅(qū)動(dòng)

這個(gè)就不用多說了鸽疾,搭載了Debian上游最新的一波升級,你想要的“更新的軟件”训貌、“更新的驅(qū)動(dòng)”統(tǒng)統(tǒng)都給你肮韧,就是這么大方!而且旺订,這次你收到的不僅僅是一次更新帶來的快感弄企,更是deepin更新會(huì)變得更加快、準(zhǔn)区拳、狠的承諾拘领。在15.7的需求中我們爭論了好多次,一方說已經(jīng)有太多用戶吐槽我們軟件不夠新樱调、基礎(chǔ)庫不夠新约素,用戶需要新的軟件;另一方說更新太快容易導(dǎo)致用戶環(huán)境不穩(wěn)定笆凌,我們畢竟是一個(gè)面向普通用戶的發(fā)行版圣猎;爭論不休,都可以開一個(gè)深度辯論賽了……最后終于達(dá)成一致乞而,我們希望能更快速的將軟件更新推送給用戶送悔,不再一次性積累大批量的更新,同時(shí)保證一定的節(jié)奏,確鼻菲。快速更新的同時(shí)不會(huì)掛掛掛荚藻。

另外,值得一提的是論壇用戶和老板不停的要求洁段、催促和威逼利誘下应狱,我們終于——終于把PRIME方案引入到了深度顯卡驅(qū)動(dòng)管理工具中,現(xiàn)在如果你是雙顯卡(N+i)用戶祠丝,你只要小手一點(diǎn)疾呻,就可以方便地在幾個(gè)預(yù)設(shè)方案中輕松切換了……嗯,不辛苦写半,用戶和老板高興就好 :)

一點(diǎn)感悟

上面說了這么一大堆罐韩,其實(shí)當(dāng)時(shí)為了準(zhǔn)備這些優(yōu)化的內(nèi)容的時(shí)候,心里面還是比較慌的污朽,因?yàn)橄到y(tǒng)優(yōu)化這事兒做起來遠(yuǎn)沒有聽起來那么爽散吵,尤其是在沒有既定方法的情況下要定一個(gè)優(yōu)化目標(biāo)出來,還是相當(dāng)無助的蟆肆,而且一旦你陷入 盲目—煩躁—焦慮 的怪圈中矾睦,就很難再痛快地出來,這就是這次15.7所面臨的第一個(gè)掙扎炎功。

我跟幾個(gè)程序員都交流過枚冗,程序員大多都有比較強(qiáng)的焦慮感,再加上程序員多有潔癖蛇损,動(dòng)不動(dòng)這不清真那不科學(xué)赁温,更容易掉進(jìn)上面這個(gè)怪圈,在這個(gè)怪圈里面淤齐,你要么有一天實(shí)在承受不了了股囊,咔嚓——破罐子破摔,從此成為浩瀚宇宙中的一粒塵埃更啄;要么有一天你想通了:“還想個(gè)毛稚疹,就是干”,然后挑一件事后跟別人扯淡都羞于提起的小事祭务,慢悠悠地開始做内狗,做完了你會(huì)發(fā)現(xiàn)你的心理負(fù)擔(dān)變輕了不少,然后再挑一件小事义锥,接著干……越干目標(biāo)越近柳沙,焦慮感也越來越少……最終,完成發(fā)版大業(yè)拌倍。

所以赂鲤,當(dāng)時(shí)我們不知道到底優(yōu)化目標(biāo)定成什么樣子噪径,那就撿最笨的方法,跟其他幾個(gè)操作系統(tǒng):Ubuntu蛤袒、Win7熄云、Win10做一個(gè)橫向?qū)Ρ扰蚋纯雌渌麕准业那闆r妙真,至少做到在單一側(cè)面都不是最差的吧?(做到任一側(cè)面都是最好的荚守,就留作下次優(yōu)化的目標(biāo)吧珍德,畢竟大家都等著咱們發(fā)版呢。)定完了就朝著目標(biāo)開始研究怎么使用優(yōu)化的工具:perf矗漾、valgrind锈候、heaptrack、google-perftools等敞贡,大家都不怎么有經(jīng)驗(yàn)泵琳?那就學(xué)一個(gè)培訓(xùn)一個(gè),各自有任務(wù)去練習(xí)……等優(yōu)化的patch都集成完了誊役,對比下優(yōu)化目標(biāo)获列,不夠或者還不滿意就再來……所有15.7可見的優(yōu)化都是這么一點(diǎn)點(diǎn)的“蒼蠅肉”拼出來的。

剛好最近在Twitter上看到的一段話蛔垢,可以把我上面想說的非常明白的表達(dá)了出來击孩,把這段“心得”分享給大家:

真的,諸位鹏漆,有什么難事千萬別耗著巩梢,別等著,那只會(huì)讓人在無盡的焦慮中煎熬艺玲,你就先大吼一句:“去你媽的括蝠。”然后兩眼血絲地去推進(jìn)饭聚,去做事又跛,做著做著就有出路了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末若治,一起剝皮案震驚了整個(gè)濱河市慨蓝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌端幼,老刑警劉巖礼烈,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異婆跑,居然都是意外死亡此熬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來犀忱,“玉大人募谎,你說我怎么就攤上這事∫趸悖” “怎么了数冬?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長搀庶。 經(jīng)常有香客問我拐纱,道長,這世上最難降的妖魔是什么哥倔? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任秸架,我火速辦了婚禮,結(jié)果婚禮上咆蒿,老公的妹妹穿的比我還像新娘东抹。我一直安慰自己,他們只是感情好沃测,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布缭黔。 她就那樣靜靜地躺著,像睡著了一般芽突。 火紅的嫁衣襯著肌膚如雪试浙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天寞蚌,我揣著相機(jī)與錄音田巴,去河邊找鬼。 笑死挟秤,一個(gè)胖子當(dāng)著我的面吹牛壹哺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播艘刚,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼管宵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了攀甚?” 一聲冷哼從身側(cè)響起箩朴,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秋度,沒想到半個(gè)月后炸庞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荚斯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年埠居,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了查牌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滥壕,死狀恐怖纸颜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绎橘,我是刑警寧澤胁孙,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站金踪,受9級特大地震影響浊洞,放射性物質(zhì)發(fā)生泄漏牵敷。R本人自食惡果不足惜胡岔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枷餐。 院中可真熱鬧靶瘸,春花似錦、人聲如沸毛肋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽润匙。三九已至诗眨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間孕讳,已是汗流浹背匠楚。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留厂财,地道東北人芋簿。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像璃饱,于是被迫代替她去往敵國和親与斤。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355