【发布时间】:2014-04-26 19:07:09
【问题描述】:
我是分析新手。我正在尝试分析连接到 SQLite 数据库并检索数据的 C# 应用程序。数据库包含 146856400 行,select 查询执行后检索到 428800 行。
在第一次执行时,主线程需要 246686 毫秒
在第二次执行相同的代码时,主线程只需要 4296 毫秒
重启系统后
在第一次执行时,主线程需要 244533 毫秒
在第二次执行相同的代码时,主线程只需要 4053 毫秒
问题:
1) 为什么第一次执行时间和第二次执行时间相差很大
2) 重新启动系统后为什么我没有得到相同的结果。
请帮忙
【问题讨论】:
-
你每次都会得到不同的结果(在性能方面),因为这就是计算机的工作方式。
-
数据库将缓冲和缓存数据。文件系统也是如此。
-
@HenkHolterman 您的 JITer 也会如此。这就像... JIter 的定义。此外,如果您使用的是 EF,那里也有编译...所以 .net 4.5 也会缓存...
标签: c# performance profiling profiler performance-testing