我偶然发现了PostSharp的出色性能行为。为了评估速度,我编写了一个小程序,该程序将执行一个函数指定的次数,如果启用PostSharp,它将在内存中生成并删除几百个字符串(非固定组合,因此它们不会自动执行)。实习生)。循环执行的时间很短(几毫秒)。
现在,我无法测量几百万次运行之间的差异,而疯狂的约400亿次迭代与执行相同数量调用的非PostSharp版本相差仅几纳秒。对我来说,这是不可能的。我的考试肯定有问题。我的代码由同事进行了同行评审,因此我相当有信心代码可以达到我的预期。
因此,使用字符串生成(在预期应用程序中的预期使用)作为基准测试的慢速运行是否有问题?
或者,是否有其他人执行(或知道)PostSharp的运行时性能分析?
谢谢。
最佳答案
在3 GHz处理器上,仅400亿个时钟周期将花费13秒-我真诚地怀疑一次迭代仅占用一个时钟周期。您的测试肯定有问题。
某些事情可能会变得最优化-也许它发现您一次又一次地在做同一件事,并且决定根本不做(第一次除外)。执行性能分析时,需要确保将数据随机化。
关于c# - PostSharp对速度没有影响,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2090299/