日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux程序编译速度提高方法

發布時間:2025/3/20 linux 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux程序编译速度提高方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

項目越來越大,每次需要重新編譯整個項目都是一件很浪費時間的事情。Research了一下,找到以下可以幫助提高速度的方法,總結一下。

  tmpfs

  有人說在Windows下用了RAMDisk把一個項目編譯時間從4.5小時減少到了5分鐘,也許這個數字是有點夸張了,不過粗想想,把文件放到內存上做編譯應該是比在磁盤上快多了吧,尤其如果編譯器需要生成很多臨時文件的話。

  這個做法的實現成本最低,在Linux中,直接mount一個tmpfs就可以了。而且對所編譯的工程沒有任何要求,也不用改動編譯環境。

  mount -t tmpfs tmpfs ~/build -o size=1G

  用2.6.32.2的Linux Kernel來測試一下編譯速度:

  用物理磁盤:40分16秒

  用tmpfs:39分56秒

  呃……沒什么變化??磥砭幾g慢很大程度上瓶頸并不在IO上面。但對于一個實際項目來說,編譯過程中可能還會有打包等IO密集的操作,所以只要可能,用tmpfs是有益無害的。當然對于大項目來說,你需要有足夠的內存才能負擔得起這個tmpfs的開銷。

  make -j

  既然IO不是瓶頸,那CPU就應該是一個影響編譯速度的重要因素了。

  用make -j帶一個參數,可以把項目在進行并行編譯,比如在一臺雙核的機器上,完全可以用make -j4,讓make最多允許4個編譯命令同時執行,這樣可以更有效的利用CPU資源。

  還是用Kernel來測試:

  用make: 40分16秒

  用make -j4:23分16秒

  用make -j8:22分59秒

  由此看來,在多核CPU上,適當的進行并行編譯還是可以明顯提高編譯速度的。但并行的任務不宜太多,一般是以CPU的核心數目的兩倍為宜。

  不過這個方案不是完全沒有cost的,如果項目的Makefile不規范,沒有正確的設置好依賴關系,并行編譯的結果就是編譯不能正常進行。如果依賴關系設置過于保守,則可能本身編譯的可并行度就下降了,也不能取得最佳的效果。

  ccache

  ccache用于把編譯的中間結果進行緩存,以便在再次編譯的時候可以節省時間。這對于玩Kernel來說實在是再好不過了,因為經常需要修改一些Kernel的代碼,然后再重新編譯,而這兩次編譯大部分東西可能都沒有發生變化。對于平時開發項目來說,也是一樣。為什么不是直接用make所支持的增量編譯呢?還是因為現實中,因為Makefile的不規范,很可能這種“聰明”的方案根本不能正常工作,只有每次make clean再make才行。

  安裝完ccache后,可以在/usr/local/bin下建立gcc,g++,c++,cc的symbolic link,鏈到/usr/bin/ccache上??傊_認系統在調用gcc等命令時會調用到ccache就可以了(通常情況下/usr/local /bin會在PATH中排在/usr/bin前面)。

  繼續測試:

  用ccache的第一次編譯(make -j4):23分38秒

  用ccache的第二次編譯(make -j4):8分48秒

  用ccache的第三次編譯(修改若干配置,make -j4):23分48秒

  看來修改配置(我改了CPU類型...)對ccache的影響是很大的,因為基本頭文件發生變化后,就導致所有緩存數據都無效了,必須重頭來做。但如果只是修改一些.c文件的代碼,ccache的效果還是相當明顯的。而且使用ccache對項目沒有特別的依賴,布署成本很低,這在日常工作中很實用。

  可以用ccache -s來查看cache的使用和命中情況:

  cache directory???????????????????? /home/lifanxi/.ccachecache hit?????????????????????????? 7165cache miss???????????????????????? 14283called for link?????????????????????? 71not a C/C++ file???????????????????? 120no input file?????????????????????? 3045files in cache???????????????????? 28566cache size????????????????????????? 81.7

轉載于:https://my.oschina.net/u/1440501/blog/294359

總結

以上是生活随笔為你收集整理的Linux程序编译速度提高方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野结衣高清电影 | 黄色av影院 | 精品成人 | 日韩精品一区二区三区在线观看 | 国产乱淫精品一区二区三区毛片 | 午夜特片网 | 手机在线观看av网站 | www,超碰| 免费毛片网站在线观看 | 鲁一鲁av | 国产最新毛片 | 黄色免费网站 | 理论片91| 中文婷婷| 欧美bbbbbbbbbbbb精品 | 激情福利社 | 中文字幕在线观看精品 | 女人做爰全过程免费观看美女 | 国产一级不卡毛片 | 日本福利一区二区三区 | 亚洲不卡av一区二区 | 欧美色图在线播放 | 日韩av中文字幕在线 | 欧美伦理在线观看 | 日本欧美www | 久久日韩 | 国产精品伦理一区二区 | 亚洲av无码乱码国产精品久久 | 亚洲中文字幕无码爆乳av | 五月天开心激情 | 中文在线a√在线8 | 亚洲加勒比 | 国产肉体ⅹxxx137大胆 | 不卡福利视频 | 亚洲在线不卡 | 午夜刺激视频 | 国产精品欧美综合亚洲 | 亚洲经典av | 色欲色香天天天综合网www | 中文字幕乱码人妻无码久久95 | 性感美女av在线 | 亚洲熟女一区 | 亚洲欧美国产精品久久久久久久 | 国产精品情侣呻吟对白视频 | 国产欧美激情视频 | 日本不卡一区二区三区在线观看 | 天码人妻一区二区三区在线看 | 99在线成人精品视频 | 能在线看的av| 亚洲在线观看一区二区 | 欧美日韩国产一区二区 | av网在线播放 | 男人资源站 | 成年人免费看毛片 | 久久久久人妻一区精品 | 欧洲综合视频 | 国产69精品久久久久久久 | 熟妇无码乱子成人精品 | 国产 欧美 日韩 一区 | 91精品国产99久久久久久红楼 | 奇米影视第四色888 免费观看a毛片 | 久草精品在线观看 | 放荡闺蜜高h苏桃情事h | 久久97精品久久久久久久不卡 | 91成人一区| 国产精品18久久久久久久久 | 手机看片国产 | 女攻总攻大胸奶汁(高h) | 九色丨蝌蚪丨成人 | 日韩性猛交ⅹxxx乱大交 | 五月天婷婷在线播放 | 毛片网页| 色呦呦在线| 欧美一区二区三区久久 | 黄色大片av | 亚洲欧美国产精品专区久久 | 国模无码一区二区三区 | 麻豆网站| 久久99精品视频 | 国产私拍视频 | 女人又爽又黄免费女仆 | 亚洲美女福利视频 | 一级h片| 91精品国产综合久久久蜜臀粉嫩 | 91视频青青草 | 久久精品男人 | 天堂在线精品视频 | 国产精品igao视频 | www.777色 | 狠狠干欧美| 国产成人精品无码免费看夜聊软件 | 亚洲一线av| 欧美激情第二页 | 日韩精品免费 | 亚洲视频综合网 | 在线一区二区观看 | 18无码粉嫩小泬无套在线观看 | 在线观看日批 | 亚洲专区一 |