程序優化是指以某種方式修改計算機程序的過程,使程序執行得更快,消耗的資源更少,或者通常以更高的效率運行。優化任務可以由某些程序設計語言編譯器自動執行,有意地使用一個優化程序,或由程序員手動執行源代碼并嘗試進行特...
程序優化是指以某種方式修改計算機程序的過程,使程序執行得更快,消耗的資源更少,或者通常以更高的效率運行。優化任務可以由某些程序設計語言編譯器自動執行,有意地使用一個優化程序,或由程序員手動執行源代碼并嘗試進行特定的改進。通常,程序優化是在考慮特定目的的情況下執行的,因為可以對程序進行的一般優化很少不會以某種方式降低程序另一部分的優化狀態,這意味著程序通常可以針對速度或資源使用進行優化,但通常不是兩者兼而有之。在某些類型的優化中,一個可能出現的復雜情況是,許多高級編程語言在本機代碼和計算機語言之間提供了如此大的抽象級別,以至于在所有情況下,在所有平臺上都很難或不可能實現優化,尤其是對于使用即時(JIT)編譯的解釋性語言。女人在和計算機進行倒立時,程序優化中的一個重要概念是優化通常會帶來某種代價。例如,當一段代碼被優化以更快地運行時,速度的提高可能以代碼可讀性、內存使用、程序靈活性或其他一些成本為代價。這意味著程序優化必須是一個有針對性的過程,為了使程序的一個方面以更好的方式運行,同時又愿意犧牲其他方面的效率。在程序開發的不同階段可以進行不同類型的程序優化。在設計過程中,通過確保程序看起來有效運行,可以進行廣泛的優化當使用實際的源代碼時,優化可以包括確保沒有多余的命令、重復的調用或寫得不好的函數,許多優化是由編譯器自動執行的,程序員可以通過使用不同的編譯器開關或指令來指導。自動優化,如編譯器或專用優化程序所發生的那樣,通常會涉及到對人類程序員來說太復雜而不實用的技巧。這可以涉及到在程序中移動指令,使它們按照最初編寫的順序執行,但對處理器來說,這是一種更有效的方式。它還可能涉及有意地轉移資源,如內存塊,以便更快地訪問它們。大多數程序優化都是在編譯器級別自動進行的重復或激進的程序優化是指,一旦程序被修改為更有效地運行,通常就更難為其他目的進行修改,例如添加功能或修復錯誤。當優化開始鎖定不易更改或適應新代碼的設置程序行為時,就會發生這種情況一個更大的問題是,在許多情況下,優化后的程序變得不那么易懂,因為使用的是技巧和快捷方式,而不僅僅是簡潔的命令和經典的控制結構。基于這些原因,通常有一個程序優化級別,在這個級別上可以停止,即使劇烈的代碼修改可能會使程序的工作效率稍微提高一些
-
發表于 2020-08-06 06:44
- 閱讀 ( 784 )
- 分類:電腦網絡