从Visual Studio启动应用程序时的Pagefaults

时间:2011-07-30 17:53:50

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

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

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

似乎没有大量的磁盘活动,并且Windows资源监视器指示没有硬故障,而任务管理器显示不断增加的数字。我知道使用IDE会有一些性能损失,但这看起来有点过分。有什么建议吗?

修改

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

Process Explorer说:Process Explorer

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

1 个答案:

答案 0 :(得分:4)

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