怎么进行Desktop heap深入解析


今天就跟大家聊聊有关怎么进行Desktop heap深入解析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Windows除了使用进程来管理资源外,还是用Sessiondesktop来管理资源。 比如只有在同一个Session里面的进程才可以共享剪贴板数据Windows Message只能在属于同一个desktop的进程之间传递。desktop heap,是操作系统管理的,为不同session创建的, 由同一session内所有desktop共享的内存。当创建进程,创建GUI的时候, 都会消耗desktop heap。当Desktop Heap用光后,系统中各种莫名其妙的问题就会发生。
比如无法创建新进程,无法弹出菜单,API调用会莫名其妙地出错。
Desktop heap用光的原因往往是太多进程同时运行,或者创建了太多GUI object怀疑是Desktop heap相关问题的时候,首先可以用下面这篇文章的方法来检查是否Desktop heap用光:首先,先到 Desktop Heap Monitor Version 8.1 下载安装程式。安装的时候预设会自动解压缩相关档案到 c:kktools 目录下,但并不会自动执行。接下来就直接执行以下的批次档,就可以自动完成所有应该的动作了。当你想看目前 Desktop Heap Size 时,直接点选批次档就可以完成所有步骤了,且批次档会自动将 driver 卸载,不会对你的电脑造成负担。 将3072 修改8192,10240,15360,20480 等数值…

MaxRequestThreads 这个参数约定了可以管理的最大线程数量,这个数量默认近为16 也有人修改此参数到80(有没有效就不得而知)
microsoft号称修改SharedSection的第二个值,即3072,把该值改成“4096”或是“8192”后就可以解决运行大量程序时报内存不足的问题。
MS把这个值叫做“desktop heap”。
如果确认是desktop heap问题后,可以参考改变注册表来做调整。

通过regedit.exe命令进入注册表,根据一下路径查找注册表参数:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerSubSystemsWindows
其中,Windows是一个字符串参数,默认值如下(每一部分以空格间隔):
%SystemRoot%system32csrss.exe ObjectDirectory=Windows SharedSecti开发云主机域名on=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16
补充说明:每个系统Desktop对象都有heap 与之对应,Desktop对象使用heap(堆)存储菜单、字符串和窗体等。系统从核心缓存(48M)中分配desktop heap。一个WINDOWS操作系统可以有多个desktop heap。
因为在非交互式工作站下,SCM为一个用户账号的每一个服务进程创建一个新的desktop,较大的desktop heap值将减少此系统可以服务的用户账号数量。 desktop heap 不能理解成“供远程桌面使用的堆栈”。看完上述内容,你们对怎么进行Desktop heap深入解析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注开发云行业资讯频道,感谢大家的支持。

相关推荐: 如何用Deployment 运行应用

今天就跟大家聊聊有关如何用Deployment 运行应用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前面我们已经了解到,Kubernetes 通过各种 Controller 来管理 Pod 的生命周期…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/04 16:14
下一篇 06/04 16:14

相关推荐