我们试图在.NET中对FileInfo对象的集合进行排序。我们实现了我们的IComparer,以确保FileInfo对象根据我们的标准进行排序。然后我们注意到对FileInfo对象进行排序的性能要比ints慢许多倍。在预感(并且记住C中的引用是如何工作的)我们能够通过使用局部变量来限制引用FileInfo属性的次数来提高性能。排序引用类型与值类型的性能
我的想法是局部变量比对象上的属性更快。我认为这在非托管代码的世界中是有道理的,我可以真正了解堆栈如何工作以及如何引用值。但是,我知道托管代码的世界可能会更复杂。我的问题是:这些关于内存管理和程序流程的基本概念是否可以通过托管代码的世界进行投影?
最终在KeeperOfTheSoul的帮助下,我们能够跟踪到我们如何嘲笑FileInfo对象。出于这个原因,我为这个问题添加了一个RhinoMock标签。
我不认为FileInfo对象直接访问文件系统。在我们的测试中,我们实际上是使用RhinoMock嘲笑FileInfo对象。这提出了一个很好的观点,难道它只是RhinoMock框架,它减缓了我们的测试吗? – LJM 2009-09-02 15:54:51
也许,我认为rhino mock会通过一些反思来放置它,当然足以阻止JIT优化效率的提高。 – 2009-09-02 15:56:45
我只是运行一些测试来验证,它看起来像嘲笑对象的性能。谢谢您的帮助。 – LJM 2009-09-02 18:38:30