LLVM传递,用于测量某些函数调用所花费的时间

LLVM传递,用于测量某些函数调用所花费的时间,llvm,Llvm,我的想法是在这些调用之前和之后插入一个函数,该函数测量所花费的时间并收集数据。在这个例子之后,我在一个单独的C文件中编写这个函数。以下是我的问题: 1-外部功能是否必须使用C语言? 2-是否存在做相同/类似工作的现有项目? 3-在源代码内部或外部构建LLVM会有所不同吗 谢谢你的帮助!:) (这是基于我开发检测工具的经验,) 外部功能只需要能够链接到项目中。我发现用C编写插装函数最简单,但您可能更喜欢另一种语言。请注意,其他语言可能遵循不同的命名/调用约定 Contech和context都有一些

我的想法是在这些调用之前和之后插入一个函数,该函数测量所花费的时间并收集数据。在这个例子之后,我在一个单独的C文件中编写这个函数。以下是我的问题:

1-外部功能是否必须使用C语言? 2-是否存在做相同/类似工作的现有项目? 3-在源代码内部或外部构建LLVM会有所不同吗

谢谢你的帮助!:)

(这是基于我开发检测工具的经验,)

  • 外部功能只需要能够链接到项目中。我发现用C编写插装函数最简单,但您可能更喜欢另一种语言。请注意,其他语言可能遵循不同的命名/调用约定
  • Contech和context都有一些功能来实现这一点。记录同步功能的时间和成本
  • 我已经成功地使用预装的LLVM二进制文件运行了Contech,并从源代码构建了它
  • 插装的基本思想是在进行函数调用之前收集开始时间。返回后,您可以将此开始时间传递给后续的检测例程。根据这些事件的频率,可能建议检测将记录存储在缓冲区中,甚至将处理传递给单独的线程