谷歌浏览器将采用新机制降低内存的占用 同时放弃使用微软段堆内存机制
微软在Windows 10 v2004版中新增段堆内存管理机制,该机制有助于谷歌浏览器等软件降低使用时的内存开销。
在微软推出这项新技术后谷歌浏览器也进行积极适配,但谷歌工程师发现内存确实降低然而处理器使用量却飙升。
这样的话使用段堆内存机制并不能有效降低功耗问题,现在谷歌宣布放弃使用段堆机制改用新方法降低内存使用。
谷歌工程师们目前正在研究新的动态内存分配技术 , 确保某些进程在最坏的情况下将活动内存占用降低10%左右。
启用段堆机制后的Chrome
微软新增的段堆内存技术有助于降低软件对内存的占用 ,微软自家浏览器也采用该技术并证明内存开销降低1/3。
谷歌工程师进行测试后发现该机制确实有效降低内存,然而内存降低的同时浏览器进程对处理器资源的占用飙升。
经过排查谷歌工程师发现微软提供的段堆内存技术不够完善,就当前来说使用该机制不能更好的平衡功耗与性能。
谷歌也寻求Windows 10开发团队的帮助,但目前看来谷歌与微软应该是没谈好,因为谷歌已放弃段堆内存机制。
按当时谷歌工程师设想,无论哪种解决方案都是长期的过程,估计最终谷歌和微软都不愿意对自家项目进行调整。
谷歌工程师新推出PartitionAlloc FastMalloc函数用来替代段堆内存技术,这个函数看起来就像是个内存分配器。
这个内存分配器既可以提高内存分配效率又可以提高安全性,因此看起来确实可以用来替代微软的段堆内存机制。
按谷歌工程师说明,PartitionAlloc 可以通过专用分区来改善浏览器缓存,启用后资源分配速度比原有机制更快。
通过这种动态内存分配机制可以节省谷歌浏览器的资源开销,同时也不会导致处理器占用过高导致功耗降不下来。
目前谷歌已经在 Chrome Canary 版中测试该技术,如果顺利的话预计在明年春季推出的正式版中将支持此功能。