急,关于页故障。

KaneCPhoenix 2003-06-23 11:37:41
谁能详细解释一下什么是页故障,可能由什么方面引起的,不要告诉我说页故障就是每秒钟错误的页数啊!
...全文
353 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
KaneCPhoenix 2003-06-24
  • 打赏
  • 举报
回复
up
KaneCPhoenix 2003-06-23
  • 打赏
  • 举报
回复
"避免内存块的反复导来导去以及大文件的读写"是指哪种情况?
Crob 2003-06-23
  • 打赏
  • 举报
回复
页面错误并不耗什么资源,我是这么觉得的,不知道对不对。没这方面的资料可查。
当物理内存没耗尽时,就容易产生页面错误,也就是说产生页面错误的概率会增加。
18taboo 2003-06-23
  • 打赏
  • 举报
回复
另外,当物理内存没耗尽时,是否会因为虚拟内存的关系产生页故障?
18taboo 2003-06-23
  • 打赏
  • 举报
回复
Crob(我干嘛这么帅~~~)我代楼长谢谢你。得10先。

既然不是主要原因,一个程序长时间运行资源耗尽,而有一个操作特定会产生定量的页故障,可否判断一下可能是什么原因?
18taboo 2003-06-23
  • 打赏
  • 举报
回复
flyidd(火舞者),直接用GOOGLE.COM搜的吧?不得分。
Crob 2003-06-23
  • 打赏
  • 举报
回复
这种错误不是至至命的,和你软件的开发有一定关系,但肯定不是最主要的原因。
避免内存块的反复导来导去以及大文件的读写
18taboo 2003-06-23
  • 打赏
  • 举报
回复
楼长不在,本人代表发言。
拜托,他问的是什么是页故障,及引起的原因,不是要显示页故障的程序啊。
Crob 2003-06-23
  • 打赏
  • 举报
回复
哈,不好意思,回错地方了,现在回你这个

页面错误的产生主要是由于操作系统内存调度时所产生的,一部分程序占用的内存是以虚拟内在的方式映射在操作系统产生的虚拟内在文件中的,当在虚拟内存中重新查找需的东西如果没找到时,操作系统就发出一个页面错误。

一般如果物理内存越大,产生页面错误的量就越少。
flyidd 2003-06-23
  • 打赏
  • 举报
回复
如果在运行应用程序时经常出现“页故障”问题,而且“页故障”数值很高,则说明应用程序的内存需求已经大大超过了计算机的物理内存(虽然可使用虚拟内存,但是仍不能解决问题),此时需要增大物理内存。例如,在内存低于64MB的奔腾级电脑上运行Windows 2000就十分吃力,而在这个时候,若是您再运行Photoshop或是office等应用程序,就经常会出现“Explorer产生了无效页面错误,位于模块GDI32.DLL的0137:bff32b74”的错误信息。
Crob 2003-06-23
  • 打赏
  • 举报
回复
修改一下,加个\0结束符,否则反转的时候会有错,如下

void CCovtestDlg::OnButton1()
{
CString szTemp="aaa";
LPBYTE pByte=new BYTE[szTemp.GetLength() + 1];
memcpy(pByte, (LPTSTR)(LPCTSTR)szTemp, szTemp.GetLength());
pByte[szTemp.GetLength()] = '\0';

//test
CString szTemp2=(char*)pByte;
AfxMessageBox(szTemp2);
delete []pByte;
}
Crob 2003-06-23
  • 打赏
  • 举报
回复
void CCovtestDlg::OnButton1()
{
CString szTemp="aaa";
LPBYTE pByte=new BYTE[szTemp.GetLength()];
memcpy(pByte, (LPTSTR)(LPCTSTR)szTemp, szTemp.GetLength());

delete []pByte;
}

编译通过,调试成功
18taboo 2003-06-23
  • 打赏
  • 举报
回复
友情关注。
KaneCPhoenix 2003-06-23
  • 打赏
  • 举报
回复
页故障达到33.3K算不算太多?

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧