Ferroc 内存分配器:现已发布第一个预发布正式版
内容提要
Ferroc v1.0.0-pre.1已在crates.io上发布,包括减小allocate_*函数接口大小、优化代码生成和添加对C/C++的支持等改进。文章还解释了TLS缓存的使用,并提供了手动和自动管理缓存生命周期的示例。此外,还讨论了使用THREAD_DATA作为全局分配器的挑战,并提供了手动管理的替代方法。文章最后给出了C/C++用户下载和安装Ferroc库的说明。
关键要点
-
Ferroc v1.0.0-pre.1已在crates.io上发布,期待用户反馈以改进。
-
主要改动包括减小allocate_*函数接口的Result大小,优化代码生成,增加C/C++支持。
-
TLS变量使用专门的缓存结构体,减少内存重复分配。
-
ferroc::heap::ThreadLocal提供手动或自动管理缓存生命周期的选项。
-
自动管理示例展示了如何在栈上和TLS中使用ThreadData。
-
手动管理生命周期依赖于ThreadLocal的assign、get和put方法,提供了两种示例。
-
C/C++用户可以通过Rust工具链下载和安装Ferroc库。
-
CMake支持多种配置选项,用户可自定义构建过程。
-
基准测试结果更新,欢迎用户试用并提供反馈。
延伸问答
Ferroc v1.0.0-pre.1的主要改动是什么?
主要改动包括减小allocate_*函数接口的Result大小、优化代码生成和增加C/C++支持。
如何在C/C++中使用Ferroc库?
C/C++用户可以通过Rust工具链下载和安装Ferroc库,并使用CMake进行构建。
Ferroc的TLS缓存是如何工作的?
Ferroc的TLS缓存使用专门的缓存结构体,支持手动或自动管理缓存的生命周期,减少内存重复分配。
Ferroc支持哪些内存管理方式?
Ferroc支持手动和自动管理缓存生命周期,用户可以根据需要选择不同的管理方式。
Ferroc的基准测试结果如何?
基准测试结果更新了时间和内存消耗,具体数据在文章中未提供,欢迎用户试用并反馈。
Ferroc的错误处理机制是怎样的?
Ferroc通过开启新增的error-log功能来记录错误日志,具体Error类型变为core::alloc::AllocError。