當前位置:首頁 » 編程軟體 » 兼職編譯

兼職編譯

發布時間: 2022-01-27 15:31:08

1. 朱石麟的介紹

(1899年7月27日~1967年1月5日)中國電影導演藝術家、編劇。原籍江蘇太倉。肄業於上海工業專門學校預科。先後做過銀行練習生、鐵路局職員,並在北京真光電影院任兼職編譯

2. 為了兼職,學哪種計算機編程語言(或技術)比較好,求推薦

我也覺得是java。因為現在很多網頁、動畫都是用java編譯而成。如果只是為了興趣、娛樂而編程的話,我就建議你選易語言或者從c++

3. 想做副業,學編程,學哪種語言比較好(零基礎)

最近有很多同學問我,我是一個零基礎的小白,到底學習哪一種語言比較好?作為一個寫了十年代碼程序員,用過七種語言的我來說,必須要強調一下,語言只是一種工具,當你真正理解了要做的事,選一個順手的就行。跟工具一樣,哪天有新的好用的語言出來,把舊的扔掉就好。

我今天寫這篇文章的目的是想給大家一個參考。

決定用什麼語言的因素有有很多,比如性能,內存佔用,開發難度,運維難度,目標平台,可執行文件大小,代碼可維護性,項目周期,項目規模,招聘難度,團隊構成,歷史遺留問題,甚至派系斗爭等。

比如騰訊就有大量歷史遺留的C和C++的伺服器代碼,畢竟20年前沒得選。又比如空降技術負責人可能會為了讓自己人上位,讓自己團隊出成績,選擇用其他語言或者框架對本來工作良好的系統進行重構。

下面開始聊語言

python

先說python,是因為這個語言小學生都開始學習了,以後不會python要被小學生欺負了。語法簡單,除了前端幾乎萬能,可用的庫極其豐富,能想到的功能幾乎都有現成的庫可以用。不管是搞爬蟲,做人工智慧,機器學習,數據分析,還是自動化運維,自動化測試,python幾乎都是首選。不想當程序員還想學習一門語言的話,學習python就沒錯了。缺點是慢,但是能讓機器累的事,何必讓人來累。

php

PHP是世界上最好的語言,可能這個已經成為很多程序員的梗。

我沒用php開發過大型項目,自己做東西的感覺是這語言非常簡單,以前用的人很多,招聘容易,但是不適合做復雜的項目。現在用得越來越少了,迅雷以前有不少運營活動頁面是PHP做的。

C

C的語法足夠簡單,應該是最接近機器語言的高級語言,適合編寫操作系統底層,驅動程序,硬體相關的程序以及看重性能的程序。由於過於簡單,構建大型程序的復雜度非常高,建議想往研發方向走的同學都學習一下C語言。

可以對計算機一些底層原理了解,比如指令執行過程,內存管理,異常,多線程,編譯過程等又更深層次的了解。掌握C語言再學習其他語言會變得很輕松,學習破解也有幫助,畢竟匯編基本都可以反編譯出C代碼。

C++

C++是一個糟糕的語言,這不是我說的,這是Linux之父說的。我自己用C++四五年時間,越到後面就感覺這句話越有道理。

首先C++的強大是毋庸置疑的,但是作為一個跟C一樣偏底層的語言,如果不理解寫的代碼背後到底發生了什麼事,如果出了錯,你是永遠不可能知道錯在哪裡的。

一個沒有垃圾回收的語言,不用智能指針很容易導致內存泄漏,錯誤的用了智能指針不但內存泄漏之後不好解決,還容易導致提前釋放等問題。

C++支持強制類型轉換,如果轉換前後的內存結構不一樣,很有可能導致各種隱性問題。還有Java之類非原生語言的異常處理都是語言自定義的異常,而C和C++中的異常很多都是操作系統層的異常。

Windows下一個簡單的try catch,你覺得可以抓到try中所有的異常,但是由於異常處理函數的指針保存在棧上,這時一個棧溢出可能直接導致異常處理函數指針被覆蓋,異常會出現在你意想不到的地方。微軟有大神曾說過,想你的代碼後續可維護就刪掉代碼中所有的try catch。

又由於語言非常底層,當程序出現底層崩潰的時候,想解決掉這個崩潰往往要讀一些匯編,這時候如果使用了大量的模板,比如stl和boost,那生成的匯編幾乎完全不可讀。看過stl代碼的人應該都知道這玩意兒寫的有多晦澀,就導致了你想用一個C++庫,如果不了解這個庫的實現原理,那大概率會出錯。

C++的復雜度又讓你很難真的理解那個庫的原理,結論就是C++強大,但是必須用的人也強大。C++直到現在還在瘋狂的增加特性,我用了四五年我自己都不敢說自己會玩C++,能用其他語言就優先考慮其他的,把C++作為最後的選項,不建議新手學,除非你的目標領域必須使用。

Rust

Rust是為了解決C和C++的各種問題而出現的語言,性能接近C++,通過所有許可權,不用垃圾回收就解決了生命周期管理。有包括管理,又有極其嚴格的編譯器檢查,能編譯通過的代碼就不會有大問題,編譯器直接把水平不夠的新手擋在了門外,通過解決出問題的人是方式,從根本上解決了C++的問題。

我第一次用rust寫個小程序就跟編譯器較了一天的勁。它的缺點就是學習難度太大,語言太小眾,庫太少,很多輪子都要自己造。但是隨著微軟之類的大廠使用,相信之後發展會比較好,新項目如果需要C或者C++可以優先考慮rust。

Java

我現在主要也是一個Java程序員,對於Java這個語言我並沒有什麼很特別的感覺,配套設施完善,什麼都能幹,體驗非常贊,就是內存佔用有點難看。想搞安卓考法的必修,阿里有大量的伺服器項目使用Java。

唯一想吐槽的是gradle這個構建系統,版本問題搞得很頭疼。

JavaScript

js是前端的必修課,沒得選,然而node讓js也萬能了。用node做過後端項目後,感覺動態類型語言還是不太適合,由此帶來的低級錯誤很多,雖然可以用typescript解決,但是最終還要編譯成js,無法直接調試。由於沒有原生的多線程支持,利用cpu也只能通過開多個進程的方式。小項目的後端做著玩還可以,大點的還是考慮Java或者是go吧。

Lua

Lua是極其輕量的語言,語言特性接近js,runtime非常小。作為一個腳本語言,性能出色,內存佔用低,很適合各種嵌入式設備或者插件系統。

Go

這玩意兒一定是谷歌為了解決自己後端項目中遇到的問題而開發的語言,各種特性直戳痛處。語法簡單,規范嚴格,這就讓不管什麼水平的開發寫出來的代碼差距都不會太大。

靜態類型,沒有默認參數,沒有異常處理,可以降低犯低級錯誤的概率。編譯成原生代碼,可內嵌C代碼,原生支持協程和多線程,可以保證性能,支持跨平台編譯,輸出單文件方便部署,這些優點帶來的問題是Go的指向性太強,只適合做高並發api類的後端服務。

想用Go開發其他任何領域都會覺得特別別扭,類似C的語法過於簡單,又沒有泛型,導致很多功能都顯得很啰嗦。但由於Go解決了部署問題,跨平台問題,降低了研發人員的水平要求,降低了犯錯誤的概率。

關於這些語言的性能沒有絕對的排序,但根據我做項目帶團隊和面試的經驗,絕大多數的程序員的水平都還碰不到語言的性能瓶頸。一般來說對語言的理解以及多線程,演算法,網路,資料庫緩存。硬體甚至業務的理解都比語言的性功能影響更大。

再次強調,語言只是工具,只有適不適合,沒有好與不好。基礎強大,用哪個都不怕,基礎太差,用什麼都尷尬。

只是會語法並不是掌握了這門語言,要知道程序背後發生了什麼。比如C++的對象模型,Java的虛擬機,垃圾回收,Go的協程,js的promise,rust怎麼編譯通過等等。

基礎是一門語言的核心,不管學習哪一門語言都要重點學好基礎。

4. 尋找Delphi 7 高手幫我解決一些問題 有償 兼職都可以!!

哈哈
一個還不太老的程序員的體會
(初稿)

軟體以程序員為本(《程序員》)

謹以此文獻給所有想當程序員的朋友

(一) 文章由來及個人經歷

我是一名計算機專業的本科畢業生,畢業已經1年多了。畢業後從事的是軟體編程工作,經常有其他專業的朋友想從事軟體編程工作,向我請教如何,因為我自覺涉行不深,不敢信口開河,無奈朋友信任,我不得不鄭重考慮一下這個問題了,來幫助朋友選擇和回報朋友的信任。

這也就是此文的由來。

還是先談談我個人的經歷吧。(是不是有點俗套,但我覺得了解我的經歷,有助於理解我話的含義;我一向認為不了解古龍的生活經歷的,不會真正讀懂古龍的作品和古龍筆下的英雄的)我本科就讀於南方一所著名的高校(因為自己的不成氣,愧談母校名謂),學的就是計算機專業。上本科時,幾乎沒有認真的聽完一門專業課程,上課看報紙睡大覺,下課看錄像看小說看球賽,臨考抱佛腳,每次考試和課程設計都是矇混過關。(於之相對是,我選修的工商管理和經濟貿易方面的課到是聽得不亦樂乎,考的分數頗高,也許這才是我的真正興趣所在。)

總而言之,大學是混過來了,對專業的理解和掌握程度,應該沒有達到畢業要求的合格水平。(也很後悔,但是有什麼用呢,當時不知道珍惜;如果上天再給我一次機會的話,我一定會抓住,多看點美國大片少看點港片;現在,重回校園是我的一大理想)但是大學的學習使我有了一個簡單的知識框架(總算學費沒白交),我對一個朋友這樣形容過我的這個知識框架,「它不是鋼筋鑄的,是稻草扎的」,哈哈哈,不要笑,真的,我敢說很多本科畢業的朋友的本專業的知識框架也只不過是「稻草扎的」。直到現在,我一直覺得自己的基礎知識還是很薄弱,一直想抓點時間,把基礎書本好好的溫習一下。(此項任務正在計劃和實施中)

畢業後,分配到某研究所工作。當領導讓我選擇自己以後的工作方向時,我毫不猶豫的選擇了軟體(也不知道到底是對還是錯,但我決不後悔)。此研究所主要是以硬體為核心搞通信控制設備的研發生產;軟體是輔助,所以也不受什麼重視,很多搞軟體的人都跳槽走了,留下來的大都是一些已經廢掉和行將廢掉的「偽/萎」程序員(名副其實的「軟體人員」)。在這里感覺不到什麼高緊張和高技術程度的研究和開發;軟體開發的技術含量極低,以致於大部分人只有半年的學習和開發經驗,以後都是這些知識和經驗的重復利用。(我問過其他到研究所工作的同學,他們說都一樣,嗚呼,我們的國防科研開發呀)對於軟體的開發,領導的意志和老掉牙的經驗在新課題的技術採用和開發中起了決定性作用,沒有明確的需求,沒有明確的開發計劃和進度,大家在一天一天一周一周的浪費著寶貴的時間,最後開發出來的東西修來改去,直至它變成垃圾。 我越來越認識到一點,要麼象那些廢人一樣廢掉,要麼自己去努力尋求出路,反正別指望從工作中得到什麼高明的經驗了(教訓倒也許有)。期間發生了一些感情上的糾紛,嚴重的影響了學習計劃和效果,直到現在浮躁的心仍然有些浮躁。

期間,我讀了一些書,看了一些文章,編過一些小常式,搞了一些沒有什麼技術含量的開發工作,也和一些前輩和高手們談過聊過。 我一直在思考幾個問題;如何學習軟體開發?如何搞軟體開發,國外的軟體開發到底其秘訣在何處?為何我們的軟體業一直在低水平徘徊?我們難道真的離了Microsoft就活不了?我們的程序員到底在浪費時間幹些什麼?軟體開發到底是如何分類的?我們如何走自己的民族軟體之路?

我想了很久,一些想通了,一些還在想。但我知道有一點是肯定的,那就是我們一定要靠我們自己走出自己的軟體之路!跟在別人屁股後面永遠受制於人!

好了,關於經歷和牢騷就先寫這些吧,該進入我們的正題了。

(二) 你適合當程序員嗎,你知道編程序是怎麼回事嗎?

1、 程序員意味著要編程序。(如果你僅僅想得到一份高薪水的工作,喝喝咖啡就等老闆發薪水,我奉勸你還是另找一份更合適的工作,譬如練攤,真的,兄弟,這份工作不適合你)

2、你是學文的還是學理的,編程序也許需要浪漫,但更需要邏輯和嚴謹。(說坦白點就是,在你沒有找到樂趣以前,它很枯燥)

3、你有對新技術追求的熱情嗎?你有刨根問底的探索精神嗎?(熱情絕對是最重要的!你仔細思考一下自己的性格適合當程序員嗎?)

4、當程序員決不是什麼好差事,時刻需要學習,需要思考。(直到你成為那個可以引導別人去學習和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)

5、程序員的未來很迷茫。(但我認為關鍵看你自己!我希望你是一個有追求的人,不僅僅是混碗飯吃。因為真正的樂趣在於創造;如果你能改變軟體業的歷史,那才是英雄;不想成為Bill Gates,不想成為Dennis Ritchie和 Bjarne Stroustrup,我會說你沒有追求。有個關於程序員未來的笑話,也許你還沒聽過,你該聽一聽,摘抄如下:

一個程序員對自己的未來很迷茫,於是去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝說「我的孩子,你去問Lippman,他現在領導的程序員的隊伍可能是地球上最大的」
於是他去問Lippman。
Lippman說「程序員的未來就是駕馭程序員」
這個程序員對這個未來不滿意,於是他又去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝說「我的孩子,你去問Gates,他現在所擁有的財產可能是地球上最多的」
於是他去問Gates。
Gates說「程序員的未來就是榨取程序員」
這個程序員對這個未來不滿意,於是他又去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝說「我的孩子,你去問侯捷,他寫的計算機書的讀者可能是地球上最多的」
於是他去問侯捷。
侯捷說「程序員的未來就是誘惑程序員」
這個程序員對這個未來不滿意,於是他又去問上帝。
「萬能的上帝呀,請你告訴我,我的未來會怎樣?」
上帝搖搖頭「唉,我的孩子,你還是別當程序員了」)

6、當程序員還是很有樂趣的。(當你學到新知識時,當你有新的思想見解時,當你有新的產品問世時,和知己探討你的成果時…我問你,覺得這些是樂趣嗎?)

7、當程序員不易也不難。(世間事有難易乎?為之…;不為…。你有決心和信心嗎?)

8、你真的要當程序員?是你自己的想法?

9、你捨得花錢買書嗎?(讀好書絕對是學習編程的最佳捷徑。你一定會說,現在電腦書籍真他XX的貴,沒法子,誰讓知識和技術在人家的腦袋,在人家的書里呢;等你寫書時可以把價格定低一點,記著還有好多沒錢但想買書的兄弟很困難呀。要捨得買書,買好書,不好的的書不如不讀,其害大於其益,關於買什麼書,你可以問高手或看候捷的書評;准備一個小本子記錄你想買的書的名字,逛書店時看看,如果好就買下,記住要讀,別光買不看。) 10、我告訴你,程序就是:任何有目的的、預想好的動作序列,它是一種軟體。

11、編程序就是編寫程序。

12、你想好了嗎?(如果你想好了還是決定要當程序員,可以繼續往下讀;否則,你可以繼續尋找別的出路了。)

(三) 一個程序員應該具備的基礎知識和概念

1、計算機是有什麼組成的,CPU是什麼東西,其工作原理是什麼。(對於這些以及下面將要提到的概念我不會告訴你什麼答案,你可以看相應的教材,關於教材我會在下一部分詳述,記住理解最重要!)

2、機器語言和微指令集的概念。

3、程序的概念。

4、匯編語言是低級語言但不是機器語言。

5、高級語言主要有那些?(C,C++,Basic,Pascal,Fortran,C#,Java等等;如果你是中國軟體業的英雄,你也寫一門語言,最好不用英語) 6、編譯程序和解釋程序的概念和其原理。(編譯器是高手和專家編寫的)

7、HTML、XML等是標識性語言。

8、Prolog是人工智慧語言。

9、操作系統OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,還有一些實時OS,嵌入OS,編這些的絕對是高手)

10、Windows編程說白了就是Windows API的調用。(中國的程序員很多隻是會編windows程序,用的是VB,我的建議是這些程序員頂多隻是低級編碼員,我稱其是coder)

11、VC++、VB、BC、BCB、Delphi、VF等都只是編程的工具和環境,不是編程語言。

12、面向結構的設計概念。

13、面向對象的概念。(好好理解,兄弟,這個東西還是很重要的)

14、軟體工程的概念和原理。(如果你想當老總就需要好好研究了,系統分析員比編碼員要高一個等級,薪水也高喲)

15、資料庫的概念。(要熟悉一些著名的資料庫系統和語言的名字,如Orcle,SQL,DB2,DyBase等)

16、了解網路概念。

17、了解多媒體概念。

18、熟悉和掌握數據結構和基本演算法。

19、是不是要求太高了,別著急慢慢來,進步在不知不覺之中。(一旦開始學習,一個月以後你就會有一個基本的概念;兩個月以後你就會感覺自己有了全面的基礎知識;當你知道編程序是怎麼回事時,說明你已經入門了。也有很多人編了很多年程序還沒有入門呢,你不會希望自己步其後塵吧。要有信心和耐心。沉不住氣怎麼能成大事?!)

(四) 教材推薦

――-推薦的教材主要還是針對概念來的,最好選用名校的教學用書。

1、《計算機組成原理》(熟悉)

2、《數據結構》(掌握)

3、《操作系統》(了解->熟悉)

4、《The C language》(掌握)

5、《編譯原理》(了解原理)

6、《匯編語言》(了解)

7、《計算機網路》(了解)

8、《軟體工程》(了解)

9、《關系資料庫》(熟悉)

10、《The C++Languege 》(掌握)

11、《面向對象設計》(掌握;結合C++學習)

(五)一些經驗和體會

1、真正的程序員用C++;(一位專家說的)

2、動手去編程序;

3、動腦去思考;

4、要有良好的編程風格;

5、讀書,讀好書,盡量讀原版書!(我反復強調這一點,讀書要有選擇,堅持讀好書,名家出的經典書,不要浪費實踐在一些粗製濫造的書上面;堅持博覽群書)

6、有自己的學習計劃;

7、總結自己的經驗教訓;(准備一個筆記本,記錄錯誤和心得)

8、不要怕學新東西;

9、要有軟體工程的思想;

10、善於發現問題,然後去尋找答案;

11、向高手請教;(要虛心直到你成為高手)

12、和同行交流;(不善於交流肯定不行)

13、懂得軟體的實質,不要被千變萬化的表象所迷惑;

14、真正要學慣用的是編程語言和方法,不是什麼庫,什麼類,什麼工具;(學用那些什麼庫都比較簡單,但光會這些庫,我覺得還遠遠不夠)

15、學習wiodows編程主要是學習windows OS和win32 API;

16、有空了解一下嵌入式開發;

17、有空了解一下PDA軟體開發;

18、了解一下.NET框架和C#語言,也許它是你新的衣食父母;

19、要有耐心,不要作浮躁的人; 20、對程序加註釋,並保留你的老程序;

21、學到的東西越多,了解的越多,你就越接近專家;

22、有空去逛逛CSDN,那裡有你很多知己;

23、要有信心成為一個優秀的程序;

(六)一些好書的推薦

1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)

2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)

3、《Inside The C++ Object Model》 (lippmans)

4、《Effective C++》 (同上)

5、《More Effective C++》 (同上)

6、《Exceptional c++》

7、《C++面向對象高效編程》

8、《設計模式》

9、《Thinking In C++》

10、《The Standard C++ Bible》(一般推薦)

11、《The Art of Computer Programming 》

12、《Programming Windows》 (Charles Petzold)

13、《VC++5.0技術內幕》

14、《MFC 深入淺出》

15、《軟體需求》

16、《Advanced Windows》

17、《C++ primer》

18、《win32程序員參考手冊》

19、《用TCP/IP進行網際互連》

20、《COM 本質論》

(七)學習計劃

――-這個學習計劃是我個人定的,也共享給大家參考一下,共同進步吧。 1、《計算機組成原理》

2、《操作系統》

3、《數據結構》

4、《匯編語言》

5、《 C 》

6、《 C++ 》

7、《VC 技術內幕》

8、《Programming Windows》

9、《深入淺出MFC》

10、《Advanced Windows》

11、《Inside The C++ Object Model》

12、《Thinking in C++》

13、《Effective C++》

14、資料庫

15、網路

16、嵌入式OS和編程

17、硬體單片機

18、.NET和C#

19、軟體工程

20、UNIX和Linux

(八)後記

一年來浪費了大量的時間去摸索,去思考,走了很多的彎路,直到現在我還覺得自己是個編程的門外漢。我把我的一些體會和想法說出來(當然,很多都不一定正確,歡迎大家指正和討論),也許對一些想加入程序員行列的朋友有一些建議和幫助。希望能幫助這些朋友順利走上編程之路,成為高手。

如果真能如此,我也就很高興了。歡迎有興趣的朋友給我發E_mail([email protected]);我這個人有兩大業余愛好,其一就是讀武俠小說,其二就是結交英雄俠士。

後記:此文我用analyster的名字登錄,發表在「csdn-程序人生」上了,有很多網友看了,回了,還收到幾個網友發來郵件,和我探討,我很感謝大家對我的信任和鼓勵。

我要說明的就是我的這篇小文,主要是想給「一些想成為程序員」的朋友一些建議,幫他們尋找一條自我培訓的捷徑,(其實世界上沒有什麼捷徑的,我覺得一切都在於悟性,師傅領進門,修行在個人,譬如我就修行不夠)少象我一樣作大量的無用功。還有,主要就是一個程序員應該具備的基本功(個人看法),有人稱其為「內功」,我覺得很對。沒有扎實的基本功,我們如何能夠做到游刃有餘的編寫高質量高性能的優秀程序呢?

讓我們共同努力,振興我們的民族軟體業!

5. android系統編譯能用分布式編譯嗎

項目越來越大,每次需要重新編譯整個項目都是一件很浪費時間的事情。Research了一下,找到以下可以幫助提高速度的方法,總結一下。
1. 使用tmpfs來代替部分IO讀寫
2.ccache,可以將ccache的緩存文件設置在tmpfs上,但是這樣的話,每次開機後,ccache的緩存文件會丟失
3.distcc,多機器編譯
4.將屏幕輸出列印到內存文件或者/dev/null中,避免終端設備(慢速設備)拖慢速度。

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秒
呃……沒什麼變化。看來編譯慢很大程度上瓶頸並不在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工作原理:
ccache也是一個編譯器驅動器。第一趟編譯時ccache緩存了GCC的「-E」輸出、編譯選項以及.o文件到$HOME/.ccache。第二次編譯時盡量利用緩存,必要時更新緩存。所以即使"make clean; make"也能從中獲得好處。ccache是經過仔細編寫的,確保了與直接使用GCC獲得完全相同的輸出。

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前面)。
安裝的另外一種方法:
vi ~/.bash_profile
把/usr/lib/ccache/bin路徑加到PATH下
PATH=/usr/lib/ccache/bin:$PATH:$HOME/bin
這樣每次啟動g++的時候都會啟動/usr/lib/ccache/bin/g++,而不會啟動/usr/bin/g++
效果跟使用命令行ccache g++效果一樣
這樣每次用戶登錄時,使用g++編譯器時會自動啟動ccache
繼續測試:
用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 Mbytesmax cache size 976.6 Mbytes
可以看到,顯然只有第二編次譯時cache命中了,cache miss是第一次和第三次編譯帶來的。兩次cache佔用了81.7M的磁碟,還是完全可以接受的。
distcc
一台機器的能力有限,可以聯合多台電腦一起來編譯。這在公司的日常開發中也是可行的,因為可能每個開發人員都有自己的開發編譯環境,它們的編譯器版本一般是一致的,公司的網路也通常具有較好的性能。這時就是distcc大顯身手的時候了。
使用distcc,並不像想像中那樣要求每台電腦都具有完全一致的環境,它只要求源代碼可以用make -j並行編譯,並且參與分布式編譯的電腦系統中具有相同的編譯器。因為它的原理只是把預處理好的源文件分發到多台計算機上,預處理、編譯後的目標文件的鏈接和其它除編譯以外的工作仍然是在發起編譯的主控電腦上完成,所以只要求發起編譯的那台機器具備一套完整的編譯環境就可以了。
distcc安裝後,可以啟動一下它的服務:
/usr/bin/distccd --daemon --allow 10.64.0.0/16
默認的3632埠允許來自同一個網路的distcc連接。
然後設置一下DISTCC_HOSTS環境變數,設置可以參與編譯的機器列表。通常localhost也參與編譯,但如果可以參與編譯的機器很多,則可以把localhost從這個列表中去掉,這樣本機就完全只是進行預處理、分發和鏈接了,編譯都在別的機器上完成。因為機器很多時,localhost的處理負擔很重,所以它就不再「兼職」編譯了。
export DISTCC_HOSTS="localhost 10.64.25.1 10.64.25.2 10.64.25.3"
然後與ccache類似把g++,gcc等常用的命令鏈接到/usr/bin/distcc上就可以了。
在make的時候,也必須用-j參數,一般是參數可以用所有參用編譯的計算機CPU內核總數的兩倍做為並行的任務數。
同樣測試一下:
一台雙核計算機,make -j4:23分16秒
兩台雙核計算機,make -j4:16分40秒
兩台雙核計算機,make -j8:15分49秒
跟最開始用一台雙核時的23分鍾相比,還是快了不少的。如果有更多的計算機加入,也可以得到更好的效果。
在編譯過程中可以用distccmon-text來查看編譯任務的分配情況。distcc也可以與ccache同時使用,通過設置一個環境變數就可以做到,非常方便。
總結一下:
tmpfs: 解決IO瓶頸,充分利用本機內存資源
make -j: 充分利用本機計算資源
distcc: 利用多台計算機資源
ccache: 減少重復編譯相同代碼的時間
這些工具的好處都在於布署的成本相對較低,綜合利用這些工具,就可以輕輕鬆鬆的節省相當可觀的時間。上面介紹的都是這些工具最基本的用法,更多的用法可以參考它們各自的man page。
5.還有提速方法是把屏幕輸出重定向到內存文件或/dev/null,因對終端設備(慢速設備)的阻塞寫操作也會拖慢速度。推薦內存文件,這樣發生錯誤時,能夠查看。

6. 中央編譯出版社錄入工作是真是假

現在網上好多招聘兼職的,並且都說是可以在家裡就可以進行的,況且收入都非常可觀,遇到這樣的您千萬不要相信。因為我總堅持一種理念,天上沒有掉餡餅的事情,也不會有免費的午餐,所有要想不通過勞動就獲取報酬那是不可能的。

這類兼職,騙人的套路就這么幾種類型,你先對號入座。

1,自稱招聘,然後以各種名義——押金、保證金、建檔費、誠信金、服裝費、體檢費、培訓費——讓你交錢的。
無論是網上,電視上還是報紙上,那些黑中介的手法你應該早有耳聞。非要哭著喊著去給那幫人交錢?

2,自稱任務,讓你到處發垃圾廣告,招更多的人,一層層拉人來上當的。
現在你可以知道為什麼會有這么多的招聘廣告,還有那些當托的。拉一個人給多少錢,這樣的好事幹嘛不找你?

3,自稱打字,讓你先交快遞費郵費,然後對方加你黑名單,給你玩消失的。
即使是很多管理員盯著的知道,也並不安全。比如那些冒稱出版社,或者虛構出版社的廣告,提問者和答復者一唱一和的鼓吹某某出版社真實可靠,無一例外是要你信以為真的去交錢。

4,自稱發貼,讓你手機注冊輸入驗證碼,個性簽名,暗中定製高價信息服務,扣你話費直到停機的。
比如那些要你輸入手機號碼,或者想方設法騙取你的手機號碼的,這類地方你都要當心。身份信息,手機號碼不要到處貼,生怕不落到保險,中介,詐騙,傳()銷團伙手裡。

5,自稱賺錢,給你一個可疑的鏈接,讓你為之貢獻點擊率和人氣的。
花那麼多精神去點這些廣告,搭上網費和電費,耗費自己的視力精力和時間值得么。

6,自稱驗證,要你提供銀行卡,忽悠你輸入密碼趁機劫走裡面的余額的。
個人信息的安全性,無論怎麼強調都不過分,千萬小心。電視上和網上報道過多次,還是有人要去信。也許就應該讓他們多上幾次當,算是一種教育。

7,自稱創業,要你去拉人頭發展下線,自稱投入多少多少,回報多少多少的。
看過武林外傳的菜刀門那集嗎?
買三把刀就是黑鐵兄弟,買30把就是青銅兄弟,買300把就是白銀兄弟,買3000把就是黃金兄弟,上頭還有鑽石兄弟呢,
購買商品的價值偏離使用商品的價值,依靠拉人頭發展下線的,
不管他們怎麼自稱,怎麼標榜,都是傳()銷。

8,自稱兼職,發給你帶毒內容,感染你的聊天工具,向你的好友發賺錢廣告的。
前段日子就有朋友遇到過:對方利用聊天工具冒充好友,自稱出了車禍要他匯錢救命,幸好發現及時發現是詐騙。

7. 我想做一個翻譯兼職,該從哪開始啊,是不是得先找個翻譯公司啊

有些網站需要人編譯些稿件,你可以去試試呀。還有稿費拿的。http://bbs.pcworld.com.cn/viewthread.php?tid=626&extra=page%3D1

8. 同命鴛鴦的導演朱石麟

中國電影導演藝術家、編劇。原籍江蘇太倉。肄業於上海工業專門學校預科。先後做過銀行練習生、鐵路局職員,並在北京真光電影院任兼職編譯。1923年朱石麟加入華北電影公司任編譯部主任,抱病寫了《自殺合同》、《故都春夢》、《戀愛與義務》等劇本。《故都春夢》是一部編、導、演完美結合的影片,公映時轟動一時,朱石麟由此在電影界名聲鵲起,為他加入電影界打開門路。

9. 怎麼樣能找到C++的兼職或實習的機會

很難,因為C++只是一門語言,相對來說學習真的很容易。
但要學一個編輯器(VC BCB)相對來說困難得多。而且軟體公司需要的肯定是會一個或兩個編輯器的人才。

勸:趕快學習一個優秀的編輯器(編譯器)。

10. 有熟悉java和python的人有興趣做兼職嗎

python其實和java一樣,也可以編譯為位元組碼再執行~

另外,Java也是解釋型語言~ 解釋型的優勢就是移植起來很方便~ 同樣的代碼,在不同的平台,用不同的解釋器一次性編譯為位元組碼之後,就可以到處運行~

python 的位元組碼文件為*.pyc格式,java的位元組碼文件為.javac格式~

不知你現在學的是什麼語言?

我以前學的是java,現在自學python中,發現python比java更靈活、強大,同樣的功能,很少的代碼就可以實現~ 優雅而美觀。

熱點內容
手機上編寫c語言 發布:2025-03-15 08:17:53 瀏覽:753
上傳迅雷下載速度 發布:2025-03-15 08:07:50 瀏覽:553
好看解壓書 發布:2025-03-15 08:04:18 瀏覽:672
文字頁游源碼 發布:2025-03-15 08:02:29 瀏覽:315
怎麼看自己微信密碼 發布:2025-03-15 07:53:58 瀏覽:791
androidchecked 發布:2025-03-15 07:50:22 瀏覽:551
百度carplay怎麼連接安卓手機 發布:2025-03-15 07:49:39 瀏覽:24
捕捉圖片上傳 發布:2025-03-15 07:49:01 瀏覽:796
手機內核升級編譯 發布:2025-03-15 07:43:22 瀏覽:237
好java學校 發布:2025-03-15 07:43:22 瀏覽:136