我有一个将数据写入SQLITE3数据库的应用程序。达到某一点后,我的应用程序变得非常缓慢。我想测量每个转换的sqlite3_step查询专门采用的时间。有没有办法这样做?我已经量化了我的应用程序,我可以看到运行时间主要取决于使用此查询的函数。现在我需要每次过渡的时间。
由于 鲁奇
答案 0 :(得分:3)
CLOCKS_PER_SEC
是一个在<time.h>
中声明的常量。要获取C应用程序中任务使用的CPU时间,请使用:
clock_t begin, end;
double time_spent;
begin = clock();
/* here, do your time-consuming sqlite query*/
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
请注意,这会将时间作为浮点类型返回。这可能比一秒钟更精确(例如,您测量4.52秒)。精度取决于架构;在现代系统上,您可以轻松获得10毫秒或更低的速度,但在较旧的Windows机器上(从Win98时代开始)它接近60毫秒。
clock()
是标准C;它无处不在&#34;无处不在&#34;。系统特定的功能,例如类Unix系统上的getrusage()
。
答案 1 :(得分:0)
我也遇到了与SQLITE3相同的问题,但没有可用于跟踪时间的方法。
我使用以下技巧跟踪时间..........
希望这能解决您的问题。