RtlInitializeExceptionChain做什么,如何减少其执行开销? [英] What does RtlInitializeExceptionChain do, and how can I reduce its execution overhead?

查看:196
本文介绍了RtlInitializeExceptionChain做什么,如何减少其执行开销?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在我的程序中找到瓶颈(目前处于低落的果实阶段),并使用分析器,我得到如下:





我在这里看到的是RtlInitializeExceptionChain占据了绝大多数的时间,从我的实际程序的功能甚至不使它到这个顶部的列表。我想知道是否有人知道RtlInitializeExceptionChain是什么,它是如何调用的,我如何重新组织我的程序不调用这么多?



其他一些信息我的项目:它是一个使用ATL的COM API,被配置的程序是一个使用这个API的测试C ++程序。



谢谢! RtlInitializeExceptionChain是运行时库中的内部函数,它是内核模式驱动程序和操作系统本身使用的内核模式支持函数的集合。 。它是C运行时库的内核模式版本。



如果你的应用程序是32位的,并且你在64位机器上对它进行性能分析,在32位机器上构建它或构建64位版本可能会将RtlInitializeExceptionChain移出前10个列表,因为它总是用于thunking。



否则,有几乎肯定没有你能做的。


I am trying to find bottlenecks in my program (currently in the "low-hanging fruit" stage), and using a profiler I get something like the following:

The thing I see in this is that RtlInitializeExceptionChain takes up the far majority of the time, and functions from my actual program don't even make it onto this top list. I would like to know if anyone knows what RtlInitializeExceptionChain does, how it is called, and how I can reorganize my program to not call it so much?

Some other information about my project: it is a COM API using ATL, and the program being profiled is a "testing" C++ program which consumes this API.

Thanks!

解决方案

RtlInitializeExceptionChain is an internal function in the Run-Time Library, a collection of kernel-mode support functions used by kernel-mode drivers and the OS itself. It's kind of the kernel-mode version of the C run-time library.

If your application is 32-bit and you're profiling it on a 64-bit machine, profiling it on a 32-bit machine or building a 64-bit version will probably move RtlInitializeExceptionChain out of the top 10 list since it's always used in thunking.

Otherwise, there's almost certainly nothing you can do about it.

这篇关于RtlInitializeExceptionChain做什么,如何减少其执行开销?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆