編譯和cpu
有關的。CPU越強大,編譯越快咯,軟體的編譯也是這樣,做大工程的點完編譯就可以泡杯咖啡慢慢喝了
② 編譯器是和cpu匹配的嗎不同的cpu使用不同的編譯器嗎
不僅和cpu匹配,還和操作系統匹配,但cpu之間有一定兼容性,比如x86-win的程序一般都能在x64-win上跑
③ 高級編程語言也要編譯成匯編語言,不同的cpu匯編語言不一樣,那會編譯成那種匯編語言呢
高級語言一般最終不是編譯成匯編語言而是機器語言,而像C#這類語言編譯後為公共語言,不是機器碼,運行時公共語言代碼由NET框架負責進一步即時翻譯即時執行為機器指令。只有C++這類語言編譯後為CPU可以直接執行的機器碼。
附圖是VS2019中C++語言的一段調試時的反匯編窗口,其中白字是C++源代碼,下面是對應的匯編碼,匯編行左列為內存地址,中間是對應的機器指令和數據(內存中的實際值),右側是對應的匯編碼。
比如,定義整數變數a並賦值1的語句,被編譯器編譯成C7 45 F8 01 00 00 00 這樣幾個位元組,其中C7為匯編碼中的MOV指令,可以操作16位寄存器和內存以及立即數,45 F8 是當前命名空間中變數地址,即變數a的地址(F845),而01 00 00 00 為32位寬度的數值1(內存排列順序是前低後高)。也就是說機器語言的指令格式為:指令代碼,地址,數據,當然根據不同指令,有時候地址和數據是不需要的。而右側 MOV dword ptr[a],1 是指令助記符,也就是匯編指令,而用匯編指令編寫的程序也是需要編譯成機器指令的。
指令C7對應的匯編碼及含義
④ 編譯速度取決於CPU還是內存
其實是越好的機器越好,如果要是還進行什麼圖形編程還要比較好的顯卡,但是你真的會用到那程度嗎,普通的入門階段買普通的機器就行了,現在的五六千的機器,或者說更低一點的,四千的機器也能滿足,我這說的是筆記本配置
主要看編寫什麼樣的程序了。
簡單的程序如果代碼不是很多,速度追求也不是很高,通用的CPU和內存就可以了。
大型程序的話就得考慮CPU指令集的豐富程度了,復雜指令的效率比較高,可以減少代碼執行時間。 內存自然是越大越好,要配合操作系統的定址范圍和管理方式。
比如大型的有豐富畫面的游戲軟體,不僅要求cpu、內存高,還對顯卡要求高。
而數據量很大的連接資料庫的管理軟體編寫,主要要求高內存。
⑤ 指令集、編譯器、演算法、CPU
CPU就是用來計算的,CPU可以做不同的計算,每種計算是一個命令,你可以用命令通知CPU做這種計算,所有的命令構成了指令集。
你寫的代碼CPU是不懂的,需要翻譯成上面說的命令,這個翻譯者就是編譯器。
演算法跟他們的關系稍遠一些。如果把計算比作生產的話,那演算法就是配方和工藝,指導著從原材料到產品的生產過程。
希望能幫助到你。