Friday, May 25, 2007
devenv.exe佔據太多CPU % ?有可能是IntelliSense搞的鬼
最近遇到一個問題,用VS2005開啟某些solution,devenv.exe就吃掉了50%的CPU usage。
而且並沒有要吐出來的意思 囧rz
使用Google之後才發現IntelliSense有一個Bug。
首先,甚麼是IntelliSense?
這個東西就是在VS寫程式的時候,譬如打一個變數的名字打到一半,就會跳出一個box,
裡面包含幾個已經宣告過的變數,讓你選你想使用的變數是哪一個。
這裡(連結)是IntelliSense在Wiki上面的解釋。
這裡(連結)是MSDN的解釋。
這篇文章(連結)提到IntelliSense一個很有意思的問題。
程式裡有時候會有無限循環的時候,
譬如在釐清父類別關係時,如果兩個class互相繼承,就會產生一個無限循環。
絕大多數的情況,VS2005的compiler並不會被影響,它使用了一些技術來克服這個情況。
(不然就跳出error叫programmer改:P)
但是為了提供使用者short cut而去Scan code的IntelliSense卻會落入無限循環之中。
因為IntelliSense的確會因為某些情況
(也許是連結上面提到的例子,也許是別的)落入無限循環之中,
間接的就造成devenv.exe吃掉很多CPU。
Labels:
Programming
Subscribe to:
Posts (Atom)