在Vista和Windows 7上使用HEAP_NO_SERIALIZE使用堆内存函数减少约100倍的原因? [英] Reason for ~100x slowdown with heap memory functions using HEAP_NO_SERIALIZE on Vista and Windows 7?

查看:60
本文介绍了在Vista和Windows 7上使用HEAP_NO_SERIALIZE使用堆内存函数减少约100倍的原因?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在传递HEAP_NO_SERIALIZE标志时看到Windows堆内存函数的性能非常糟糕,这应该通过删除这些方法的内置序列化来做相反的事情。这种情况发生在任何用VC6编译的默认设置,甚至更新的程序(PHP编译在VS2008上),因为他们将这个标志与他们自己的内存管理器一起使用。

影响相当严重,发生在Vista和Windows 7客户端操作系统(未测试服务器操作系统,但任何基于Windows 6+内核的操作都应受到影响)。

请参阅http://stackoverflow.com/questions/1983563/reason- for-100x-slow-with-heap-memory-functions-using-heapnoserialize-on-v有关此问题的更多讨论。

任何人都可以添加任何有关此问题的见解,或者只是复制它还有一些操作系统(例如服务器平台)用于记录?示例应用程序可在上面的链接中找到。

谢谢!

I'm seeing really bad performance with the Windows heap memory functions when passing in the HEAP_NO_SERIALIZE flag, which should be doing the opposite by removing the built-in serialization on those methods. This happens with anything compiled with VC6 by default it seems and even newer programs (PHP compiled on VS2008) since they use this flag with their own memory manager.

The impact is quite serious and happens on Vista and Windows 7 client OSes (didn't test server OSes, but anything based on the Windows 6+ kernel should be impacted).

Please see http://stackoverflow.com/questions/1983563/reason-for-100x-slowdown-with-heap-memory-functions-using-heapnoserialize-on-v for more discussion about this issue.

Can anyone add any insight into this issue, or just replicated it on a few more OSes (server platforms for example) for the record? Sample apps are available at the link above.

Thanks!

推荐答案

Windows Vista和Windows 7使用低碎片堆出于性能原因的默认值。

Windows Vista and Windows 7 use the low fragmentation heap by default for performance reasons.

(由于某些因素,它仍然比旧的C ++ 6.0 CRT堆慢)

(It is still slower than the old C++ 6.0 CRT heap by some factor)

http://xania.org/200512/crt-heap-fragmentation-in-windows

http://www.blackhat.com/presentations/bh -usa-06 / BH-US-06-Marinescu.pdf

http://askldjd.wordpress.com/2011/03/22/heap-performance-counters/

http://askldjd.wordpress.com/2011/03/22/heap-performance-counters/


这篇关于在Vista和Windows 7上使用HEAP_NO_SERIALIZE使用堆内存函数减少约100倍的原因?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆