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

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

Java中if/etc與Switch語句的相對性能差異是什么?

Java中if/etc與Switch語句的相對性能差異是什么?

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

3 回答

?
慕村225694

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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