我正在與一個網站上解決奧運IT謎語訓練。C#Linq比PHP慢?解決謎題#236A
我已經提供了兩種解決方案:
- C#
- PHP
在線判斷表明,PHP版本更快,我感到困惑! 爲什麼?
C#:109毫秒3000 KB
PHP:45毫秒0 KB
這怎麼可能?
我正在與一個網站上解決奧運IT謎語訓練。C#Linq比PHP慢?解決謎題#236A
我已經提供了兩種解決方案:
- C#
- PHP
在線判斷表明,PHP版本更快,我感到困惑! 爲什麼?
C#:109毫秒3000 KB
PHP:45毫秒0 KB
這怎麼可能?
您的C#版本創建了三個您似乎不需要的數組。
string input = Console.ReadLine();
int charCount = input.Distinct().Count();
if(charCount % 2 == 0) ...
以下是可能會比較快尚:您可以將其替換爲
int charCount = new HashSet<char>(input).Count;
鑑於方案給出,該方案的重要位的執行時間 - 尋找獨特的人物 - 鐵定不是需要109ms。這聽起來像是什麼「在線判斷」涉及到的是測量總執行時間,包括進程啓動,.NET中的JITting等。
這有點像問哪輛車更快從車庫出來,代表汽車的速度。
現在是完全可能的,PHP的array_unique
功能真的是非常快,可能快於LINQ ...但基本上你不能得到任何有用的信息出來的基準測試結果。你應該尋找能夠執行幾秒鐘而不是幾毫秒的基準,並且哪一個不包括包括啓動/預熱時間,除非這是你特別感興趣的。
實際上,「0kB」方面是也相當可觀! – Gabe