亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

大程序段分成小程序寫會變慢嗎??

大程序段分成小程序寫會變慢嗎??

有只小跳蛙 2018-06-27 10:10:55
寫java代碼的時候突然想到的奇怪問題:有一個函數很大,所以把一個大程序分成好多個小邏輯很正常,比如這樣的public void 把大象關進冰箱(大象){    檢查大象狀態;    檢查冰箱狀態;    打開冰箱;    檢查冰箱大小;    把大象放進去;    檢查異常    關上冰箱;    清除中間數據;}變成下邊這樣:public void 把大象關進冰箱(大象){    打開冰箱();    把大象放進冰箱();    關上冰箱();}protect 冰箱 打開冰箱(){        ...}protect boolean 把大象放進冰箱(){        ...}protect 冰箱 關上冰箱(){        ...}這種方式大函數調小函數(向上邊這樣)的方式會讓程序在jvm上跑的速度變慢嗎?不知道我描述的清楚嗎?
查看完整描述

4 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

會,因為context切換了,不過這種一般忽略,得保證代碼可讀性

查看完整回答
反對 回復 2018-07-07
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

你說的,這些是不定的,因為對于程序的優化問題本質上是一個不可判定的問題。
舉個例子,如果從調用的角度而言,好像是增加了開銷,但如果另一個方面,我們可以把程序分解成很多的線程進行執行,可能速度又會加快,而且,變成小代碼了,cache的優化可能會使其加快,(這個要取決于你的循環結構體),有很多因素會影響你的代碼運行,但當前,是以程序員的開發為核心進行優化,也就是怎么讓程序員更有工作效率,怎么來。分解成小代碼,顯然是有利于程序員開發,從這個角度說,你其實已經優化了代碼了。

查看完整回答
反對 回復 2018-07-07
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

可能會變得慢,但是不是關鍵。關鍵是你的思路和代碼實現過程是不是最優。

查看完整回答
反對 回復 2018-07-07
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

方法的調用是有成本的,但是其對性能的影響可以忽略。
值得一提的是,Java編譯器幾乎不會對這些調用進行優化,但是JVM在運行時會去分析,然后選擇性將一些方法調用進行內聯,以達到節省開銷的目的。程序員在非極端要求性能的情形下不必關心這些細節。

查看完整回答
反對 回復 2018-07-07
  • 4 回答
  • 0 關注
  • 438 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號