Tag: performance

\ d效率低于

我昨天发表了一个评论,有人用[0123456789]作为正则expression式而不是[0-9]或\d 。 我说,使用范围或数字说明符可能比字符集更有效。 我决定今天testing一下,发现令我吃惊的是(至less在C#正则expression式引擎中) \d似乎比其他两个似乎没有太大的差别。 这是我的testing输出超过10000随机string1000个随机字符与5077实际上包含一个数字: Regular expression \d took 00:00:00.2141226 result: 5077/10000 Regular expression [0-9] took 00:00:00.1357972 result: 5077/10000 63.42 % of first Regular expression [0123456789] took 00:00:00.1388997 result: 5077/10000 64.87 % of first 有两个原因令我感到惊讶: 我会认为范围将比集合更有效地执行。 我不明白为什么\d比[0-9]更糟糕。 除了简单的[0-9]之外还有更多的东西吗? 这里是testing代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Text.RegularExpressions; namespace SO_RegexPerformance { […]

大O,你怎么计算/近似呢?

大多数拥有CS学位的人肯定知道Big O代表什么。 它可以帮助我们衡量一个algorithm的效率如何,如果你知道你想要解决的问题在哪个类别中,你可以找出是否仍然可以排除这个额外的性能。 1 但我很好奇, 你如何计算或近似algorithm的复杂性? 1 但是正如他们所说的那样,不要过头, 不成熟的优化是万恶之源 ,没有正当理由的优化也应该得到这个名称。

静态链接与动态链接

在某些情况下,是否有任何令人信服的性能原因来选择通过动态链接进行静态链接,反之亦然? 我听过或读过以下内容,但是我对这个问题的认识还不够充分。 1)静态链接和动态链接之间的运行时性能差异通常可以忽略不计。 2)(1)如果使用分析编译器使用配置文件数据来优化程序热路径,因为使用静态链接,编译器可以优化代码和库代码。 通过动态链接,只有你的代码可以被优化。 如果大部分时间用于运行库代码,这可能会产生很大的差异。 否则,(1)仍然适用。