【发布时间】:2013-05-12 13:35:38
【问题描述】:
我创建了一个控制台应用程序,我在其中尝试了 2 种从 sql 数据库(= 在同一台服务器上)获取值的不同方法。当我添加一个秒表来检查哪个是最快的方法时,我有时会得到第一个,有时会得到第二个。什么可以为此负责?是否可以在相同条件下运行测试?我应该运行这个异步吗?
我的控制台代码可以在这里找到:http://pastie.org/7920175
【问题讨论】:
-
首先,如果不在发布版本下,结果将毫无意义。其次,如果有时是第一个,有时是第二个,我会很快猜测它们花费的时间非常相似。
-
我们需要方法本身的源代码。但是为什么需要优化代码呢?有这么慢吗?那么线程会更好。 @Moo-Juice:我完全同意。
-
与数据库服务器本身执行 SQL 相关的因素(缓存、参数嗅探等)可能与客户端相比有同样多或更多的因素影响性能;当然,这取决于基准方法实际上做了什么——你没有说明和时间差——你也没有说明
-
您实际上不太可能衡量代码的性能。当您查询 dbase 时,.NET 端并没有发生太多事情,这一切都发生在 dbase 服务器上。这基本上就是你的测试结果告诉你的。您需要得出的结论是,您使用哪种方法并不重要。
标签: c# performance methods console-application