大程序段分成小程序写会变慢吗??
生活随笔
收集整理的這篇文章主要介紹了
大程序段分成小程序写会变慢吗??
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不過在 Haskell 里面函數調用幾乎是 0 成本的,所以函數粒度可以寫的特別小。
會,因為context切換了,不過這種一般忽略,得保證代碼可讀性
你說的,這些是不定的,因為對于程序的優化問題本質上是一個不可判定的問題。舉個例子,如果從調用的角度而言,好像是增加了開銷,但如果另一個方面,我們可以把程序分解成很多的線程進行執行,可能速度又會加快,而且,變成小代碼了,cache的優化可能會使其加快,(這個要取決于你的循環結構體),有很多因素會影響你的代碼運行,但當前,是以程序員的開發為核心進行優化,也就是怎么讓程序員更有工作效率,怎么來。分解成小代碼,顯然是有利于程序員開發,從這個角度說,你其實已經優化了代碼了。
方法的調用是有成本的,但是其對性能的影響可以忽略。值得一提的是,Java編譯器幾乎不會對這些調用進行優化,但是JVM在運行時會去分析,然后選擇性將一些方法調用進行內聯,以達到節省開銷的目的。程序員在非極端要求性能的情形下不必關心這些細節。
可能會變得慢,但是不是關鍵。關鍵是你的思路和代碼實現過程是不是最優。
所以C++里有內聯函數。因為函數調用會復制參數,使用堆棧和代碼跳轉。。。。
會,因為context切換了,不過這種一般忽略,得保證代碼可讀性
你說的,這些是不定的,因為對于程序的優化問題本質上是一個不可判定的問題。舉個例子,如果從調用的角度而言,好像是增加了開銷,但如果另一個方面,我們可以把程序分解成很多的線程進行執行,可能速度又會加快,而且,變成小代碼了,cache的優化可能會使其加快,(這個要取決于你的循環結構體),有很多因素會影響你的代碼運行,但當前,是以程序員的開發為核心進行優化,也就是怎么讓程序員更有工作效率,怎么來。分解成小代碼,顯然是有利于程序員開發,從這個角度說,你其實已經優化了代碼了。
方法的調用是有成本的,但是其對性能的影響可以忽略。值得一提的是,Java編譯器幾乎不會對這些調用進行優化,但是JVM在運行時會去分析,然后選擇性將一些方法調用進行內聯,以達到節省開銷的目的。程序員在非極端要求性能的情形下不必關心這些細節。
可能會變得慢,但是不是關鍵。關鍵是你的思路和代碼實現過程是不是最優。
所以C++里有內聯函數。因為函數調用會復制參數,使用堆棧和代碼跳轉。。。。
總結
以上是生活随笔為你收集整理的大程序段分成小程序写会变慢吗??的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄豆酱烧海鱼的做法?
- 下一篇: 小米mix4售价曝光,小米mix4价格曝