是否有任何设计工具可以让我在 C 代码中获得不同功能的确切指令数量
Posted
技术标签:
【中文标题】是否有任何设计工具可以让我在 C 代码中获得不同功能的确切指令数量【英文标题】:Is there any design tools that I can get the exact number of instructions of different functions in C code 【发布时间】:2013-06-05 13:16:38 【问题描述】:我需要分析一些带有函数的 c 代码,并且我想获得 c 代码中不同函数的指令的确切数量。我不知道。谢谢。
【问题讨论】:
您要测量什么?代码大小、性能、其他...? 你应该添加目标...C指令? ..它可能是用户定义的,但是..您需要对代码进行分类(因为您标记了分析)吗? 你的意思是你想剖析它吗?只需使用-pg
标志编译它,运行应用程序,然后运行gprof ./name_of_app gmon.out
。或者,如果您想查看其背后的汇编语言,请使用 -S
标志进行编译。不确定这是否是您想要的,但希望这是正确的方向。
我想得到函数的准确执行时间。而且我需要将最耗时的部分转移到硬件上。我需要确切数量的指令的原因是为我的专用硬件逻辑设置边界,该逻辑用于计算函数执行的周期数。专用的硬件逻辑附加在系统总线上,可以跟踪CPU中程序计数器信号的信息。
Gprof 不准确。
【参考方案1】:
如果你在谈论汇编指令,这很简单:
用 main 编写一个小的 C 程序。立即在 main 中调用您想要的函数。使用 gcc -c 选项编译(输出一个目标文件)。在文本编辑器中打开您的目标文件 (.o)。寻找调用函数(这是对函数的调用)。开始计算行数,直到遇到返回(ret)指令。
给你!当然,您的编译器可能会优化此目标代码,因此它可能会更复杂一些,但这可能是一种非常简单的方法。
【讨论】:
以上是关于是否有任何设计工具可以让我在 C 代码中获得不同功能的确切指令数量的主要内容,如果未能解决你的问题,请参考以下文章