Windows内存分配问题
我目前正在研究
Windows下的malloc()实现.但在我的研究中,我偶然发现了困扰我的事情:
首先,我知道在API级别,Windows主要使用HeapAlloc()和VirtualAlloc()调用来分配内存.我从here开始收集malloc()的Microsoft实现(包含在CRT中的那个 – C运行时)基本上调用了块的HeapAlloc()> 480字节,并以其他方式管理为VirtualAlloc()分配的特殊区域,用于小分配,以防止碎片. 那一切都很好,很好.但是还有其他实现的malloc(),例如nedmalloc,它声称比微软的malloc快了125%. 所有这些让我想到了一些事情: >为什么我们不能只为小块调用HeapAlloc()?在碎片方面表现不佳(例如通过“先适合”而不是“最适合”)? >实际上,有没有办法知道各种API分配调用的内幕是什么?这将非常有帮助. >是什么让nedmalloc比微软的malloc快得多? >如果是真的,为什么会这样呢? >平均而言,典型的malloc调用(可能是已分配段数的函数)执行了多少(一个数量级)的内存读/写操作?我会直观地说它是一个普通程序的十位,我是对的吗? 解决方法
>调用HeapAlloc听起来不是跨平台的. MS可以随时改变他们的实施;建议远离. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- active-directory – 如何在Windows Server 2008 R2 CA颁发
- windows – 如何在cygwin中安装libtoolize?
- window下强制杀死某个进程用taskkill /pid 进程号 -t -f命令
- 在32位Windows上使用NASM在程序集中创建exe文件
- powershell – 如何在交换混合环境中备份/导出office 365电
- 在Windows桌面上调整postgreSQL以利用24GB RAM
- 鱿鱼相当于Windows?
- winforms – 获取System.Windows.Forms.RichTextBox的标准上
- windows-phone-8 – 如何获取推送通知的Windows Phone设备令
- Windows Phone 7 – 如何在WIndows Phone应用程序中访问Nav
- 在WIndows上构建/检查R包时,权限被拒绝错误
- windows-server-2008 – 保护托管Windows 2008服
- Windows窗体 – 如何在C#中的组合框项目中添加标
- Serv-u本地权限提升漏洞的终极防御
- windows-8 – Visual Studio错误:“无法激活后台
- windows-server-2003 – 远程桌面问题
- 如何使用wamp在windows上烘焙cakephp 2.0应用程序
- windows-server-2003 – 是否有Windows 2003 Ser
- 如何在Windows上的R 3.0.1中安装doRedis软件包版
- Windows Azure中的Web角色缩放