分配从DLL导入的对象时的性能问题
Performance issue when allocating an object imported from a DLL
我遇到了一个非常奇怪的问题。我的c++程序使用了我自己编写的DLL。这个DLL导出一个类MyDocument。
#ifdef WIN32
# if defined(CORE_EXPORTS)
# define CORE_API __declspec(dllexport)
# elif defined(MCORE_IMPORTS)
# define CORE_API __declspec(dllimport)
# else
# define CORE_API
# endif
#else
# define CORE_API
#endif
class CORE_API MyDocument
{
public:
...
};
当我的客户端程序试图创建这个对象的数组时,在调试模式下需要超过7秒(几乎是10秒)。
MyDocument *docs = new MyDocuments[550];
我读到在env变量中使用_NO_DEBUG_HEAP=1,但它不会改变任何东西。
而且,我发现了一些奇怪的事情。我没有导出类MyDocument,而是将整个代码放在头文件中,这样我就可以通过包含它的头文件来使用它。在这种情况下,相同的分配语句几乎是即时的。
MyDocument *docs = new MyDocuments[550];
老实说,我不知道那里发生了什么。
有什么建议吗?
My config: XP with VS Express 2008.
z请检查CORE_EXPORTS或CORE_INPORTS是否在包含该头文件的复杂单元中明确定义。
相关文章:
- 在类中使用随机生成器时出现性能问题
- Qt OpenGL 渲染到纹理性能问题
- 剪辑性能问题
- OpenCV - 基本操作 - 性能问题 [模式:发布]
- 使用 #define 进行跟踪日志记录以避免性能问题
- 在 Qt C++ 中在自定义项委托上绘制文本时的性能问题
- std::函数有性能问题,如何避免?
- 使用 const double* const 作为模板参数 - 代码性能问题
- 在C 中读取大型CSV文件性能问题
- MPI 二进制文件 I/O 基本功能和性能问题
- 使用STD :: MAP在数据及其性能问题中查找重复项.我可以预先分配吗?
- C 功能性能问题
- 在C 性能问题中使用Getter返回地图
- 初始化每个班级成员时的性能问题
- 事件(开始,结束),1天的最大事件.C++ 中的性能问题
- 在X64模式下从C /CLI调用MASM PROC会产生意外的性能问题
- OpenGL:MESA3D屏幕上的软件渲染性能问题
- 是包含容器性能问题的STL关联容器
- 任何性能问题都在qt框架中使用了stackedwidget的最大页面数
- SHGetFileInfo性能问题