回答
簡而言之:由於非常具體的優化,低級語言可以產生更好的性能。
優勢低級語言:
- 您可以專門針對和利用芯片的功能(或寄存器)
- 一般來說它可以是(很多)更快,如果你知道你做了什麼,但這是一種罕見的情況。
缺點高級語言的:
- 你需要某種形式的編譯器,以獲得HLL到LLL
- 在某些情況下(例如,Java/C#),你有一個解釋器之間這也消耗資源(但也可以在運行程序時優化自己!)
這裏有一個更詳細的LLL的優點列表:
- 你可以訪問機器相關的寄存器和I/O
- 可以控制在臨界區的確切代碼的行爲,否則可能會涉及多個軟件線程或 硬件設備之間的僵局
- 可以打破常規編譯器的慣例,這可能允許一些優化(例如暫時違反關於內存分配,線程,調用約定等的規則
- )使用不兼容的約定(例如由不同的編譯器產生的,或由一個
低級接口分開)- 可以得到訪問自己的處理器異常的編程模式(例如16位模式接口啓動,固件,或遺留代碼上
英特爾個人電腦)- 可以產生相當快的代碼緊密循環到一個壞的非優化編譯器處理(但後來,有免費的優化
編譯器可用!)- 你就可以生產手工優化的代碼完全調整爲特定的硬件設置,雖然不是別人的
- 你可以寫一些代碼爲你的新語言的優化編譯器(這是什麼東西很少有孩子能不能做,甚至他們不經常)
- 即你可以在c你的代碼omplete控制
現在,C被認爲是低級語言。與Python相比,即使是C++也是相當低的水平。 –
不自己分配內存是一回事。這些語言背後的程序員創建垃圾收集器,他們有時(大部分)會給你大量的內存。
以JavaScript爲例。如果你這樣做var arr = array(501);
它可能會給你600字節,或1000甚至更多。
對於像在操作系統上的嵌入式設備或視頻遊戲(上PS4遊戲等)存儲器是VITAL低電平程序。所以你不能承擔比你需要更多的空間。
這並沒有提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – M4ks
我不能擁有20點聲望點。 :) –
- 1. 爲什麼高級編程語言沒有C那麼快?
- 2. 低,中,高級語言,有什麼區別?
- 3. 使用Maven有什麼優點/缺點?
- 4. 使用Hibernate的二級緩存有什麼缺點?
- 5. 將高級語言翻譯成機器語言的過程是什麼?
- 6. 是否有高級語言編譯爲低級語言(如C)的術語?
- 7. XNA使用什麼語言?
- 8. 使用什麼語言?
- 9. 使用android有什麼缺點:largeHeap =「true」?
- 10. 使用SOAP服務有什麼缺點?
- 11. 使用git-svn有什麼優缺點?
- 12. 使用SqlServer視圖有什麼缺點?
- 13. 使用StringBuilder有什麼缺點?
- 14. 使用NewSequentialID有什麼缺點嗎?
- 15. 使用AVL樹有什麼缺點?
- 16. 什麼是可以編譯的最高級別的語言?
- 17. 在CLI中,多種高級語言意味着什麼
- 18. 是否可以將低級語言轉換爲高級語言?
- 19. Icon編程語言的優缺點是什麼?
- 20. 低級圖形的高級語言
- 21. 使用ZeroMQ Binary Star和Zookeeper進行高可用性有什麼優點/缺點?
- 22. 面向機器的高級語言和高級語言之間的區別
- 23. 從JRE5升級到JRE8有什麼優點和缺點?
- 24. 創建一個新班級有什麼優點和缺點?
- 25. 優點和缺點解釋語言
- 26. ConcurrentHashMap有什麼缺點嗎?
- 27. Typed DataSet有什麼缺點
- 28. Apache Wicket有什麼缺點?
- 29. std :: reverse_iterator有什麼缺點?
- 30. VistaDB有什麼缺點
我想到的第一件事情是高級語言的簡單定義:這些語言是建立在誰定義某種預先定義的層配置,實施......,這是很常見的。 如果你的意思是創建一個遵循這些常見配置,實現......的程序,我會說,繼續使用高級語言。 但是,如果您想創建一個以全新方式執行任務的程序,那麼使用低級語言可能會有幫助。 想象一下,你不喜歡滾動條的外觀。您只能使用低級語言進行更改。 – Dominique
它們比寫得很好的低級程序慢得多。當然,使用低級語言寫得不好的程序可能會很慢。 (例如,一個天真的鏈表+線性搜索在C中手工實現,而不是僅僅使用Python的哈希表) –