在for/while/do中进行许多c/malloc()可能会消耗大量时间,因此我很好奇是否有任何操作系统可以缓冲内存以进行快速分配。
我一直在思考,是否可以通过编写“贪婪”的malloc包装器来加速malloc。例如,当我请求1MB的内存时,初始分配器将分配10MB,第2、3、4等调用malloc函数时,malloc函数将仅从最初分配的块返回内存。当然,如果没有足够的可用内存,您需要分配一个新的贪婪内存块。
不知怎么地,我认为有人以前肯定做过这个或类似的事情。所以我的问题很简单:这是否会显着加速内存分配过程。(是的,我可以在提问之前尝试它,但如果没有必要写这样的东西,我就太懒了)
我一直在思考,是否可以通过编写“贪婪”的malloc包装器来加速malloc。例如,当我请求1MB的内存时,初始分配器将分配10MB,第2、3、4等调用malloc函数时,malloc函数将仅从最初分配的块返回内存。当然,如果没有足够的可用内存,您需要分配一个新的贪婪内存块。
不知怎么地,我认为有人以前肯定做过这个或类似的事情。所以我的问题很简单:这是否会显着加速内存分配过程。(是的,我可以在提问之前尝试它,但如果没有必要写这样的东西,我就太懒了)
malloc
是 C 运行时库的一部分,而不是操作系统。malloc
以及操作系统内存服务通常会进行缓存和缓冲以加速分配。 - Adrian McCarthy