循环里不能有数据转换(整数到文本或文本到整数),分配内存不能一小块一小块的分(要一次分得够大),显示出来的东西不能太多(小于100就行),读写内存不能一小块一小块的读(要一次读得够大),最快的(变量,数组,汇编)。最慢的(数据转换,显示出来,频繁的调用函数)
C/C++中的计时函数是clock()。
所以,可以用clock函数来计算的运行一个循环、程序或者处理其它事件到底花了多少时间,具体参考代码如下:
#include “stdioh”#include “stdlibh”
#include “timeh”
int main( void )
{
long i = 10000000L;
clock_t start, finish;
double duration;
/ 测量一个事件持续的时间/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i-- ) ;
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", duration );
system("pause");
}
先让你的图像处理进程用简单的循环指令延时程序替代,再进行测试:
如果执行的时间都相同的话,那么就是你的图像处理方法自身引起的执行时间不一致。
如果也不同,那么有可能是系统的消耗引起的,逐一停掉其他进程进行测试,检查缓存,内存处理,甚至定时器(晶振的稳定性)等等,逐一排查。
需要自己在每一行代码前后加上日志时间打印。
目前查询程序执行耗时,需要自己在每一行代码前后加上日志时间打印,在代码执行后,计算这一句代码的耗时。
Idea使用精确查找技巧总结:
1、Command+N搜索类,有选项可以搜索包含jar中的类。
2、Command+Shift+N搜索文件,有选项可以设置搜索包含Jar中的所有文件。
3、Command+Shift+Alt+N搜索标号(方法、成员变量等)有选项可以设置搜索包含Jar中的所有。
4、Command+Shift+F搜索字符串,与Eclipse中的Ctrl+H一样可以搜索字符串,有一些选项可以使用。
修改算法。。。这一大串的代码有多少人会仔细看啊,说明/注释都没有。
找出问题自己想办法改吧
大致看了下,主要时间大概还是在多重循环那了。想缩减时间的话,简化一下那部分
也可以调用matlab自带的计时工具,看那个函数占用时间做多。
以上就是关于MFC程序运行比较慢,比如可能分配空间耗时大,我想写一个可以记录时间的日志程序!!求啊!!!!全部的内容,包括:MFC程序运行比较慢,比如可能分配空间耗时大,我想写一个可以记录时间的日志程序!!求啊!!!!、C语言求一个程序运行时间、我现在用的是ARM CortexA9,每次跑程序耗时差别很大等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)