首页 新闻 会员 周边 捐助

如何监视函数的执行情况(百分比量化)?

0
悬赏园豆:100 [已关闭问题] 关闭于 2011-09-26 09:18

我想要知道一个函数执行的完全过程,具体到函数执行的百分比(可以是时间百分比,也可以是代码段的百分比)。这个函数中间也许有for , while循环,中间可能会调用其他函数,这个其他函数也可能有递归,有高手做过这方面的东西么?大家有好的建议?   欢迎大家讨论。

f110的主页 f110 | 初学一级 | 园豆:65
提问于:2011-09-01 11:18
< >
分享
所有回答(2)
0

下载一个旗舰版的VS,在分析菜单中有些选项,然后你就需要看看MSDN了,查找"使用分析工具对应用程序性能进行分析"的主题。

StevenChennet | 园豆:23 (初学一级) | 2011-09-01 12:49
2

dotTrace 可以记录运行时间

http://www.jetbrains.com/profiler/index.html?topDT

Jerry Chou | 园豆:2642 (老鸟四级) | 2011-09-01 12:56

谢谢大侠,不过我想知道的是函数运行时的情况,比如假定函数执行前知道需要10s完成, 执行了5s的时候是50%。也就是一个即时的函数执行的报告。

不过下载了dotTrace 确实不错,为以后代码优化找到了好工具,可惜不能跟踪到C++写的lib里面去。

支持(0) 反对(0) f110 | 园豆:65 (初学一级) | 2011-09-01 14:11
太太可能有执行你说这样的报告吧,因为时间时常是不确定的比如你在做IO相关的操作,你很难知道你的执行时间是10s。
可能你想知道的是执行代码行数的百分比,这个也很难,因为你想把相应的函数调用也计算在内,这个本身就很难确定,比如用调用的是XXX库。

不过单单地记录执行行数,或许最笨的print可以帮上忙,嘿嘿
支持(0) 反对(0) Jerry Chou | 园豆:2642 (老鸟四级) | 2011-09-01 14:16

thanks, 其实做的是一个通用的命令执行情况报告, 这个命令是一个长时间的执行函数,可能在另外一个线程中,需要在UI上面显示这个命令执行的百分比。上面的要求是最好是在不更改(或少许更改)已有做好的命令函数的情况下做到即时报告。现在已经修改了一个命令,不过不通用,而且很繁杂。

支持(0) 反对(0) f110 | 园豆:65 (初学一级) | 2011-09-01 15:32
其实我想说的就一点,时间百分比=已用时间/总时间。

倘若在函数未执行完之前,你是没有办法知道总时间的。
支持(0) 反对(0) Jerry Chou | 园豆:2642 (老鸟四级) | 2011-09-01 15:38

是的,感觉使用时间来做是不可能的。 但是可以在函数执行前可以知道它会执行多少行代码么?  有for  while循环  还有递归调用。

支持(0) 反对(0) f110 | 园豆:65 (初学一级) | 2011-09-01 16:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册