2011-01-24 66 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看起来如何?可探测是有没有耗时的东西...