首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何打印有关代码执行情况的数据?

如何打印有关代码执行情况的数据?
EN

Stack Overflow用户
提问于 2014-08-09 05:32:55
回答 1查看 122关注 0票数 1

在haskell中编程时,我们有一个解释器选项:set +s,它会打印一些有关您运行的代码的信息。在ghci上,打印运行代码所花费的时间和使用的字节数。在拥抱时,打印解释器减少的数量和使用的字节数。我怎么能在C里做同样的事情呢?我知道如何打印运行c代码所花费的时间,以及如何打印处理器运行它所花费的时钟数。但是字节数和减少量呢?我想知道一种很好的方法来比较两种不同的代码来做同样的事情,并比较哪种代码对我来说是最有效的。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-09 09:57:20

如果您想比较性能,只需比较时间和使用的内存。允许两个程序利用相同数量的处理器核,用两种语言编写等效的程序,并运行基准测试。如果您使用的是Unix,time(1)是您的朋友。

其他一切都与性能无关。如果一个程序执行了比另一个程序多10倍的函数调用,但是运行了一半时间,那么它仍然是性能更好的程序。

基准博弈网站使用时间/空间标准比较不同的语言。你也许希望遵循同样的精神。

为了更仔细地分析程序的部分,而不是整个程序,您可以使用分析器(在C中)或者打开分析选项(在GHC Haskell中)。判据也是一个流行的Haskell库,用于测试Haskell程序。分析通常有助于发现代码中的“热点”:长时间运行的循环、经常被称为函数等。这很有用,因为它可以让程序员知道哪里需要优化。例如,如果一个函数累积运行0.05s,在此基础上获得10倍的速度增长远远不如对函数累计运行20分钟(0.045s对60倍增益)进行5%的优化。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25215523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档