第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java中if/etc與Switch語(yǔ)句的相對(duì)性能差異是什么?

Java中if/etc與Switch語(yǔ)句的相對(duì)性能差異是什么?

精慕HU 2019-07-20 12:41:27
Java中if/etc與Switch語(yǔ)句的相對(duì)性能差異是什么?考慮到我的web應(yīng)用程序的性能,我想知道“if/etc”或Switch語(yǔ)句中哪一個(gè)在性能方面更好?
查看完整描述

3 回答

?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

我完全同意這樣的觀點(diǎn),即過(guò)早優(yōu)化是應(yīng)該避免的。

但確實(shí),JavaVM有特殊的字節(jié)碼,可以用于Switch()的字節(jié)碼。

因此,如果代碼是性能CPU圖的一部分,則可能會(huì)提高一些性能。


查看完整回答
反對(duì) 回復(fù) 2019-07-20
?
慕姐8265434

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊

如果/否則或切換將是性能問(wèn)題的根源,這是非常不可能的。如果您有性能問(wèn)題,您應(yīng)該首先進(jìn)行性能分析,以確定慢點(diǎn)在哪里。過(guò)早優(yōu)化是萬(wàn)惡之源!

然而,通過(guò)Java編譯器優(yōu)化,可以討論開(kāi)關(guān)相對(duì)于if/etc的相對(duì)性能。首先請(qǐng)注意,在Java中,開(kāi)關(guān)語(yǔ)句在非常有限的域-整數(shù)上運(yùn)行。通常,您可以按以下方式查看開(kāi)關(guān)語(yǔ)句:

switch (<condition>) {
   case c_0: ...
   case c_1: ...
   ...
   case c_n: ...
   default: ...}

哪里c_0c_1.和c_N是開(kāi)關(guān)語(yǔ)句的目標(biāo)整數(shù),以及<condition>必須解析為整數(shù)表達(dá)式。

  • 如果這個(gè)集合是“稠密的”-也就是說(shuō),(max(C)i)+1-min(C)i)/n>α,其中0<k<α<1,其中k大于某些經(jīng)驗(yàn)值,可以生成跳轉(zhuǎn)表,這是高效的。

  • 如果這個(gè)集合不是很密集,但是n>=β,那么二進(jìn)制搜索樹(shù)可以在O(2*log(N)中找到目標(biāo),這仍然是有效的。

對(duì)于所有其他情況,開(kāi)關(guān)語(yǔ)句與if/etc語(yǔ)句的等效序列完全一樣有效。α和β的精確值取決于許多因素,并由編譯器的代碼優(yōu)化模塊決定。

最后,當(dāng)然,如果<condition>不是整數(shù),開(kāi)關(guān)語(yǔ)句是完全無(wú)用的。


查看完整回答
反對(duì) 回復(fù) 2019-07-20
  • 3 回答
  • 0 關(guān)注
  • 1010 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)