我们的长时间运行的服务器进程(运行在Windows Server 2003上)会因内存分配失败而抛出异常。我们怀疑这些分配失败是由于内存碎片化引起的。
因此,我们一直在寻找一些替代的内存分配机制,并希望有人告诉我最好的方法:
1)使用Windows 低碎片堆
2)jemalloc-如Firefox 3中使用的
3)Doug Lea的malloc
我们的服务器进程使用跨平台C++代码开发,因此任何解决方案理想情况下都应该是跨平台的(* nix操作系统是否会遭受这种类型的内存碎片化?)。
另外,我是否正确地认为LFH现在是Windows Server 2008 / Vista的默认内存分配机制?如果我们的客户升级他们的服务器操作系统,我的当前问题会“消失”吗?