C“删除”很慢.我应该先看哪儿?

前端之家收集整理的这篇文章主要介绍了C“删除”很慢.我应该先看哪儿?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个C应用程序,其中“删除功能运行缓慢.可能导致这种情况的原因以及我应该从哪里开始寻找解决方案?

背景:

此C代码位于AutoCAD内部运行的ARX文件中,该文件基本上只是一个DLL.

删除速度慢的特定计算机运行AutoCAD 2011,Windows 7,64位.必须使用Visual Studio 2008 Service Pack 1编译ARX for AutoCAD 2011.

有问题的计算机是客户的计算机.它没有安装任何版本的Visual Studio.

在我的开发计算机上,代码在AutoCAD 2011中没有任何问题.

为了测试,我有一些删除链表的代码.在有问题的计算机上,删除列表需要0.7秒.在没有问题的计算机和配置上,相同的代码需要0.02秒.具体时间并不重要 – 两个数字之间的差异很大.

我确保在两台计算机上运行相同版本的代码,因此它不是发布与调试构建问题.

解决方法

大概按顺序我会检查它们:

>其他插件:可能由其他ARX文件引起的行为?他们可以在糟糕的系统上被禁用吗?> PerfMon:在删除期间检查软/硬页面错误或缓存未命中是否达到峰值(我希望您可以在客户计算机上进行设置).> HeapQueryInformation:好/坏环境中的相同值?>堆锁:其他一些线程可能在后台高度活跃,紧紧抓住堆的锁吗?您可以通过在HeapLock / HeapUnlock中包装循环来测试(当然,锁定时间在锁内).>钩子:各个代码可以挂钩吗? (例如,第三方应用程序挂钩到C / Win32 Heap函数以执行它想做的任何事情)>抓住吸管:相应的新产品需要多长时间吗?个人删除时间如何分配?

原文链接:https://www.f2er.com/c/119398.html

猜你在找的C&C++相关文章