gpt4 book ai didi

c++ - 如何检测关键函数中调用的后台函数

转载 作者:可可西里 更新时间:2023-11-01 18:26:37 33 4
gpt4 key购买 nike

我正在处理非常大的 c++ 项目,它有很多实时关键函数和很多慢速后台函数。不应从时间关键函数调用这些后台函数。那么有没有办法检测这些后台函数被关键函数调用呢?编译时间会很好,但无论如何我喜欢在这些后台函数之前检测。更多信息,慢速和关键函数都是同一类的一部分并共享相同的 header 。

更多信息,关键函数在真正较快的线程 (>=10KHz) 下运行,较慢的函数在不同的较慢线程 (<=1KHz) 下运行。类成员变量在慢速函数中使用临界区进行保护,因为它们都使用相同的类成员变量。这就是在关键函数中调用慢速函数会降低整体系统性能的原因。这就是为什么我喜欢自动找到所有这些类型的功能而不是手动检查。

谢谢....

最佳答案

您需要利用链接器。将“实时”和慢速功能分成两个模块,并按正确的顺序将它们链接起来。

例如,将文件拆分到两个目录中。从每个目录创建一个库(将目标文件一起运行),然后使用以下链接链接您的最终应用程序:

c++ -o myapp main.o lib1/slowfns.a lib2/realtime.a

如果您尝试在 realtime.a 中调用 slowfns.a 中的任何内容,根据编译器的不同,它将无法链接(某些编译器可能需要选项来强制执行此操作)。

此外,这也让您可以轻松管理编译时声明:确保在编译“实时”函数库时来自 slowfns 库的 header 不在包含路径中以增加保护。

关于c++ - 如何检测关键函数中调用的后台函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16689418/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com