龙岩做网站设计公司,如何写网络营销策划方案,seo深度优化服务,百度站长自动推送wordpress前两天已开源线程池#xff0c;开源一款轻量线程池项目#xff0c;本节继续开源另一个孪生兄弟#xff1a;内存池。 本节的线程池与内存池代码解析会在我的星球详细讲解。 内存池#xff1a;https://github.com/Light-City/light-memory-pool 线程池#xff1a;https://gi… 前两天已开源线程池开源一款轻量线程池项目本节继续开源另一个孪生兄弟内存池。 本节的线程池与内存池代码解析会在我的星球详细讲解。 内存池https://github.com/Light-City/light-memory-pool 线程池https://github.com/Light-City/light-thread-pool 基于Arrow的轻量内存池 这个项目的内存池是基于Apache Arrow项目的衍生版本。我们将Arrow项目中复杂的核心结构——内存池——完全剥离出来形成了这个独立的项目。由于原始的内存池与Arrow项目本身的工具有深度依赖关系因此我们在这个项目中对内存池进行了一些深度移除和改造以保持与原始Arrow内存池的基础功能一致。一些改动包括 分离allocator与memory_pool移除不需要的LoggingMemoryPool、ProxyMemoryPool移除jemalloc等第三方malloc库未来可以支持 通过这些改动我们的目标是 使代码更加精简使内存池更方便地作为其他项目的依赖库使用提供简单的方式来引入本项目的so库和头文件以使用内存池功能 此外这个项目还可以作为深入学习内存池设计与实现的资源。我们欢迎您探索并使用这个经过精心改进的内存池。 1.如何编译 ➜ bazel build //src:memory_pool
WARNING: Ignoring JAVA_HOME, because it must point to a JDK, not a JRE.
WARNING: Ignoring JAVA_HOME, because it must point to a JDK, not a JRE.
INFO: Analyzed target //src:memory_pool (36 packages loaded, 169 targets configured).
INFO: Found 1 target...
Target //src:memory_pool up-to-date:bazel-bin/src/libmemory_pool.abazel-bin/src/libmemory_pool.dylib
INFO: Elapsed time: 1.568s, Critical Path: 1.05s
INFO: 10 processes: 4 internal, 6 darwin-sandbox.
INFO: Build completed successfully, 10 total actions 2.如何使用 所有的用例放在examples目录 2.1 编写一个简单的case 参见helloworld arrow::MemoryPool* pool arrow::default_memory_pool();char* val;
arrow::Status status pool-Allocate(14, reinterpret_castuint8_t**(val));if (status.ok()) {std::cout Memory allocation successful. std::endl;std::strcpy(val, Hello, World!);std::cout Filled content: val std::endl;pool-Free(reinterpret_castuint8_t*(val), 4);
} else {std::cout Memory allocation failed. std::endl;
} 编译 ➜ bazel build //examples:hello_world
WARNING: Ignoring JAVA_HOME, because it must point to a JDK, not a JRE.
WARNING: Ignoring JAVA_HOME, because it must point to a JDK, not a JRE.
INFO: Analyzed target //examples:hello_world (0 packages loaded, 2 targets configured).
INFO: Found 1 target...
Target //examples:hello_world up-to-date:bazel-bin/examples/hello_world
INFO: Elapsed time: 0.881s, Critical Path: 0.73s
INFO: 7 processes: 5 internal, 2 darwin-sandbox.
INFO: Build completed successfully, 7 total actions 运行 ➜ bazel-bin/examples/hello_world
Memory allocation successful.
Filled content: Hello, World! 3.如何测试 测试基于catch2编写所有测试位于tests目录 可以测试tests目录下面的其他测试只需要替换submit_test为对应的test即可。 bazel test //tests:memory_pool_test