c++ - 从 Visual Studio 启动应用程序时出现页面错误

标签 c++ performance visual-studio-2010 page-fault

我正在使用 Visual Studio 2010 编写和调试一个小程序。问题是,每当我通过 Visual Studio 2010 启动应用程序时,我的应用程序进程都会产生每秒 100000 次范围内的页面错误,这会使程序速度减慢 10 倍或更多。当我从文件系统启动生成的可执行文件时,启动完成后不会生成页面错误。这发生在调试和(允许所有优化)发布版本中。没有异常被抛出。

程序本身的编译量约为 200kib,执行时可容纳约 10mib 的数据,并有超过 4gib 的可用内存。只有主线程和日志框架的线程在运行。数据在开始时加载一次,之后只有结果存储在新分配的内存中并在最后写入日志。

似乎没有很多磁盘事件,Windows 资源监视器指示没有硬故障,而任务管理器显示的数字不断增加。我知道使用 IDE 会导致一些性能损失,但这似乎有点过分。有什么建议吗?

编辑:

注意:通过减少(取消)分配新内存,我能够将计数减少到大约一半。

Process Explorer 说:Process Explorer

看来调试器出了问题。如果我不附加它,它会按预期运行。虽然我仍然想知道为什么它会引发如此大量的页面错误,但它会大大减慢所有构建速度。

最佳答案

页面错误是正常的。它是分配内存过程的一部分。这没什么好担心的。

关于c++ - 从 Visual Studio 启动应用程序时出现页面错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6884946/

相关文章:

c++ - 这段代码中的 begin() 指针是如何创建的?

c++ - C++ 编译器如何从 utf8 源文件生成 unicode 字符串文字

performance - 使用 nginx 进行负载均衡

visual-studio-2010 - 无法打开包含文件 "d3dx9.h"

c++ - 为什么这段代码不能用 VS2010 和 gcc 4.8.1 编译

c++ - 使用 lambdas 做嵌套函数

c++ - 关于何时调用嵌入对象的复制构造函数的困惑

ios - 我们能以某种方式在 xcode 模拟器中自定义 RAM 大小吗

c# - 为什么 string.IsNullOrEmpty 比比较快?

C#全屏,隐藏任务栏