“容错堆”造成问题
由于 Windows 7 嵌入了“容错堆”,我的程序性能有时会减半。关于 FTH 的信息不多,但这是我能够确定的。
FTH 通常是由于堆错误而添加的。我无法找到一种方法来通知哪些错误导致其启用。
FTH 会按文件名将应用程序列入黑名单,因此即使您修复了错误,它仍然会嵌入到您的应用程序中,并且可能最终会消失(所以是的,即使反复试验也无法告诉您哪个错误导致它嵌入随机挥舞似乎是唯一的答案)。这些决定是如何做出的是不透明的。我重命名了我的应用程序,FTH 消失了,性能恢复到正常,因此它一定以某种方式跟踪文件名。
- 一种方法可以关闭 FTH 并防止其嵌入到我的 PC 上,但不能保证它不会嵌入到用户的 PC 上,从而使用户的性能降低一半。
几乎没有关于此功能的文档。我能找到的最好的是一个工程师在这里讨论这个问题的长达一小时的视频:http://channel9.msdn.com/shows/Going+Deep/Silviu-Calinoiu-Inside-Windows-7-Fault-Tolerant-Heap/
有谁知道有关此功能的更多详细信息以及如何将其从我的应用程序中删除?
My program's performance is sometimes being cut in half due to Windows 7 embedding a 'fault tolerant heap'. There's not much info out there about the FTH but this is what I've been able to ascertain.
The FTH usually gets added due to heap errors. I cannot find a way to be notified which errors are causing it to enable.
The FTH will blacklist applications by filename, so even if you fix the errors it will still embed in your application, and maybe eventually go away (so yes, not even trial and error can tell you which error is causing it to embed. Random flailing seems to be the only answer). How these decisions are made are opaque. I renamed my app and the FTH went away, and performance was restored back to normal, so it must be tracking the filename somehow.
There is a way to turn off the FTH and prevent it from embedding on my PC, but there's no guarantee it won't embed on a user's PC cutting their performance in half.
There is almost no documentation about this feature. The best I can find is an hour long video of an engineer discussing it here: http://channel9.msdn.com/shows/Going+Deep/Silviu-Calinoiu-Inside-Windows-7-Fault-Tolerant-Heap/
Does anyone know more details on this feature and how to banish it from my application?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论