2011-01-24 70 views
1

我的程序有3-4秒的延遲時間,我懷疑它是我的開關。這是一個像這樣的開關...以下switch語句的效率如何?

case "aword": 
//do something 
break; 
case "aword2": 
//do something 
break; 

該開關有大約20-25個案例+休息。我想知道這是否會導致我的滯後時間?如果是這樣,你會如何改正它?

開關條件是...

chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) 
{ 
    switch(request.req) 
    { 

是什麼讓我懷疑的開關...

我剛纔的開關調用之前打印語句,它打印的罰款。然後,他們在//dosomething之前發現該案件時,下一次打印是在該開關中。這使我相信問題在於找到這一個案例。

+7

不要'懷疑'這些東西。將它分解成一個函數,然後使用一個分析工具(你會發現內置於Firebug,Chrome的開發工具等) – Quentin 2011-01-24 13:26:34

+4

我認爲切換比ifelseifelseifelse更好。你爲什麼認爲這是問題?只有20個交換機不應該太難。也許這是字符串比較?嘗試切換整數? – Marnix 2011-01-24 13:27:00

回答

0

這不是肯定的開關。我做了一個替代解決方案,沒有任何區別。回到這個畫板上。

0

我猜'case'部分不是問題。簡單的字符串比較不需要很長時間(3-4s)。但你的'switch'-condition看起來如何?可探測是有沒有耗時的東西...