我正在尝试找到程序的瓶颈(目前处于“低垂果实”阶段),并使用分析器得到以下结果:
从中可以看出,RtlInitializeExceptionChain占用了大部分时间,而我的实际程序函数甚至没有进入此列表。 我想知道是否有人知道RtlInitializeExceptionChain是什么,如何调用它以及我如何重新组织我的程序以避免频繁调用它?
关于我的项目的其他信息:它是一个使用ATL的COM API,并且正在对消耗此API的“测试”C ++程序进行性能分析。
谢谢!
我正在尝试找到程序的瓶颈(目前处于“低垂果实”阶段),并使用分析器得到以下结果:
从中可以看出,RtlInitializeExceptionChain占用了大部分时间,而我的实际程序函数甚至没有进入此列表。 我想知道是否有人知道RtlInitializeExceptionChain是什么,如何调用它以及我如何重新组织我的程序以避免频繁调用它?
关于我的项目的其他信息:它是一个使用ATL的COM API,并且正在对消耗此API的“测试”C ++程序进行性能分析。
谢谢!
RtlInitializeExceptionChain是运行时库中的一个内部函数,它是一组内核模式支持函数,被用于内核模式驱动程序和操作系统本身。这个函数可以看作是C运行时库的内核模式版本。
如果您的应用程序是32位的,并且在64位机器上进行性能分析,那么在32位机器上进行性能分析或者建立64位版本可能会将RtlInitializeExceptionChain从前10个列表中移除,因为它总是在转发过程中使用。
否则,您几乎肯定无法对此进行任何处理。
RtlInitializeExceptionChain()
几乎肯定是操作系统使用的内部函数。这可能意味着它是一个实现细节,不应该被修改。鉴于它是一个初始化函数,除非您在紧密循环的每个迭代中调用它,否则我认为不必担心。 - In silico