編程代碼 編譯一段代碼的速度和CPU的線程核心和代碼的速度有關(guān)嗎?如果編譯一個(gè)QQ大小的代碼需要多長時(shí)間?。?/h1>
編譯一段代碼的速度和CPU的線程核心和代碼的速度有關(guān)嗎?如果編譯一個(gè)QQ大小的代碼需要多長時(shí)間啊?1個(gè)CPU的速度與核心數(shù)有關(guān)嗎?核心越多,速度越快?只有將同一系列的CPU進(jìn)行比較,核心數(shù)和主頻與CP
編譯一段代碼的速度和CPU的線程核心和代碼的速度有關(guān)嗎?如果編譯一個(gè)QQ大小的代碼需要多長時(shí)間???
1個(gè)CPU的速度與核心數(shù)有關(guān)嗎?核心越多,速度越快?只有將同一系列的CPU進(jìn)行比較,核心數(shù)和主頻與CPU的運(yùn)行速度成正比,二級和三級緩存的大小是另一個(gè)因素。
核心版本和流程的升級也會產(chǎn)生影響。一般來說,在同一系列CPU中,內(nèi)核越多,主頻越高,緩存越多,版本越新,CPU速度越快。例如,amdathlon iiix2250肯定比amdathlon iix2240快,但并不一定比英特爾奔騰E6300好,后者的主頻、緩存和內(nèi)核數(shù)量與x2240相同?那你就不能武斷地說了。需要使用各種測試軟件進(jìn)行驗(yàn)證。相同的核數(shù)、相同的主頻和相同的二級緩存,哪個(gè)更快?帶CPU的主板依賴pin和前端總線,與CPU的二級緩存無關(guān)。如果865的主板有478接口,則支持p42.8e和p43.2c,另外主板和CPU前端總線都是800MHz,比p43.2c好,雖然p42.8e是1024的二級緩存,但它的核心是Prescott內(nèi)核,它的熱量和功耗都和a的內(nèi)核一樣高,而C的內(nèi)核功耗高Northwood core比Prescott好
打字速度差對編程的影響相對較小,因?yàn)榫幊痰乃俣炔灰蕾囉诖蜃值乃俣龋驗(yàn)榫幊痰倪^程是一個(gè)邏輯思維轉(zhuǎn)換的過程,思考占據(jù)了大部分編程時(shí)間。而且,在學(xué)習(xí)編程的過程中,還可以通過練習(xí)提高打字速度。因此,如果打字速度不快,可以學(xué)習(xí)編程。
我剛開始工作時(shí),我們實(shí)驗(yàn)室有一位數(shù)學(xué)專業(yè)的老專家。他在算法設(shè)計(jì)和實(shí)現(xiàn)方面有很高的造詣,設(shè)計(jì)了許多大型軟件系統(tǒng),獲得了許多高水平的榮譽(yù)。我經(jīng)常問他一些算法問題。在這個(gè)過程中,我發(fā)現(xiàn)他只用兩個(gè)手指來打字,可以想象他一邊看鍵盤一邊打字。但即便如此,這絲毫不影響他的編程過程。所以編程主要依靠腦力。打字速度對編程沒有多大影響。
在多年的開發(fā)工作中,我們也遇到了很多老研發(fā)人員,他們打字速度不快,但研發(fā)能力很強(qiáng)。因?yàn)榇蠖鄶?shù)研發(fā)程序員一天有幾百行代碼,大部分時(shí)間都在做驗(yàn)證和思考,沒有太多時(shí)間敲鍵盤。
學(xué)習(xí)編程應(yīng)該注意基礎(chǔ)知識的學(xué)習(xí),特別是數(shù)學(xué),因?yàn)榫幊虤w根結(jié)底是一個(gè)數(shù)學(xué)問題。當(dāng)然,如果你是一個(gè)應(yīng)用級程序員,那么對數(shù)學(xué)的要求就不高了。
打字速度不是很快,會影響學(xué)編程嗎?
自2003年以來,我們一直在做程序設(shè)計(jì)。一般來說,我們寫的代碼越多,我們需要的代碼就越少。
在程序開發(fā)之初,我主要做了功能實(shí)現(xiàn)。負(fù)責(zé)項(xiàng)目設(shè)計(jì)的同事把界面寫得很好,剩下的就是功能實(shí)現(xiàn)。實(shí)現(xiàn)寫功能并不困難。簡單地說,數(shù)據(jù)以固定格式處理后,就可以發(fā)回。在此期間,每天的代碼量相對較大,平均每天大約有500行。
隨著他們編碼能力的提高,很多代碼重用會做得更好。在整個(gè)實(shí)現(xiàn)過程中,他們會采用比較簡單的實(shí)現(xiàn)方法,也懂得如何使用模塊化的開發(fā)模式。通過這個(gè)過程,代碼的數(shù)量在一定程度上減少了,但是思考的時(shí)間變長了,有時(shí)需要一些時(shí)間來驗(yàn)證。在2006年確定自己的主要方向時(shí),代碼量再次下降。因?yàn)楣ぷ髦行囊呀?jīng)從函數(shù)編寫調(diào)整到了一些框架設(shè)計(jì)和算法實(shí)現(xiàn),這段時(shí)間每天的代碼量大約在200行左右,其中很多是編寫接口。在此期間,重點(diǎn)工作是實(shí)現(xiàn)算法,做數(shù)據(jù)分析和建模。在這段時(shí)間里,還使用了Matlab,因此編碼量大大減少,但難度增加了很多。有時(shí)需要一周甚至更長的時(shí)間來完成算法的驗(yàn)證。
2010年之后,我將機(jī)器學(xué)習(xí)和大數(shù)據(jù)添加到我的主要攻擊方向。這時(shí),我每天的代碼量又下降了,平均有100多行。有時(shí)一天可以寫幾十行代碼,對算法進(jìn)行分析、訓(xùn)練和驗(yàn)證的時(shí)間就變長了。當(dāng)java第一次被使用時(shí),代碼的數(shù)量可能會更多。后來,當(dāng)使用Python時(shí),代碼量減少了很多。目前,算法的實(shí)現(xiàn)也采用Python。
事實(shí)上,在計(jì)算機(jī)研發(fā)中,編程更像是一種工具。無論使用何種語言,最終的任務(wù)都是實(shí)現(xiàn)功能。編碼量與角色有很大關(guān)系,但與編程水平?jīng)]有直接關(guān)系。當(dāng)然,高級程序員必須有大量的代碼基礎(chǔ),這是毋庸置疑的。
一個(gè)程序員的代碼編寫量,能否決定他的編程水平?
解釋和編譯的區(qū)別在于,解釋讀取一段代碼,而解釋執(zhí)行一段代碼。如果一段代碼的語法分析和語義分析已經(jīng)完成,并且已經(jīng)生成了執(zhí)行過程,但是該過程不是立即執(zhí)行的,而是全部被收集并連接成一個(gè)大的執(zhí)行過程,這就是編譯。這也意味著對于同一段代碼,每次解釋和執(zhí)行代碼時(shí)都要重復(fù)語法分析和語義分析,編譯執(zhí)行省略了這個(gè)過程,解釋是交錯(cuò)執(zhí)行,完全符合程序的“原始”控制流。編譯有機(jī)會分析和優(yōu)化整個(gè)程序的流程。03編譯后的代碼是“固定的”,在代碼運(yùn)行時(shí),解釋和執(zhí)行可以直接修改代碼和數(shù)據(jù)。2解釋語言和編譯語言的區(qū)別一種語言的動態(tài)性越強(qiáng),需要解釋的地方就越多,反之亦然。特別是,C和匯編根本沒有動態(tài)特性,所以幾乎所有語言的運(yùn)行時(shí)系統(tǒng)都是用C編寫的。然而,解釋和編譯之間沒有明顯的區(qū)別。動態(tài)特性也可以由即時(shí)編譯器處理