我正在与一个网站上解决奥运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