cppjieba icon indicating copy to clipboard operation
cppjieba copied to clipboard

cppJieba内部是否有内存释放逻辑?

Open zhangxistudy11 opened this issue 3 years ago • 8 comments

zhangxistudy11 avatar Dec 30 '22 10:12 zhangxistudy11

我自己试了一下运行前内存占用7.3g,运行时最大占用7.8g然后我写了一个system("pause");执行到这条语句后仍未回到7.3g关闭程序回到7.3g

cosmos-in-h2o avatar Jan 24 '23 07:01 cosmos-in-h2o

我用 darts 优化了一下 CppJieba 的内存占用,可以减少到原来的 1/100 : https://byronhe.com/post/2019/11/25/cppjieba-darts-DAT-memory_optimize/

代码在: https://github.com/byronhe/cppjieba

byronhe avatar Feb 20 '23 05:02 byronhe

我用 darts 优化了一下 CppJieba 的内存占用,可以减少到原来的 1/100 : https://byronhe.com/post/2019/11/25/cppjieba-darts-DAT-memory_optimize/

代码在: https://github.com/byronhe/cppjieba

您的代码我试了一下,无法make

[ 6%] Building CXX object deps/gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o [ 12%] Linking CXX static library libgtest.a [ 12%] Built target gtest [ 18%] Building CXX object test/CMakeFiles/demo.dir/demo.cpp.o [ 25%] Linking CXX executable ../demo CMakeFiles/demo.dir/demo.cpp.o:在函数‘cppjieba::CalcFileListMD5(std::string const&, unsigned long&)’中: ./cppjieba/include/cppjieba/DatTrie.hpp:368:对‘limonp::MD5::MD5()’未定义的引用 ./cppjieba/include/cppjieba/DatTrie.hpp:416:对‘limonp::MD5::Update(unsigned char*, unsigned int)’未定义的引用 ./cppjieba/include/cppjieba/DatTrie.hpp:425:对‘limonp::MD5::Final()’未定义的引用 collect2: error: ld returned 1 exit status make[2]: *** [demo] 错误 1 make[1]: *** [test/CMakeFiles/demo.dir/all] 错误 2

Sarah-Callies avatar May 31 '23 08:05 Sarah-Callies

用 test/make_demo.sh 来 make,deps/limonp/Md5.hpp 我拆到 deps/limonp/Md5.cpp 里面了。

byronhe avatar May 31 '23 13:05 byronhe

用 test/make_demo.sh 来 make,deps/limonp/Md5.hpp 我拆到 deps/limonp/Md5.cpp 里面了。

我集成后内存占用从原来的106M降到40M,为什么不是降到1%的1M呢?

Sarah-Callies avatar Jun 06 '23 03:06 Sarah-Callies

用 test/make_demo.sh 来 make,deps/limonp/Md5.hpp 我拆到 deps/limonp/Md5.cpp 里面了。

我集成后内存占用从原来的106M降到40M,为什么不是降到1%的1M呢?

可以用 jemalloc 的 heap profiler 查一下内存都是哪些数据结构在占用

byronhe avatar Jun 06 '23 05:06 byronhe

用 test/make_demo.sh 来 make,deps/limonp/Md5.hpp 我拆到 deps/limonp/Md5.cpp 里面了。

我集成后内存占用从原来的106M降到40M,为什么不是降到1%的1M呢?

可以用 jemalloc 的 heap profiler 查一下内存都是哪些数据结构在占用

那请问您得出的结论1%是怎么得出来的啊?

Sarah-Callies avatar Jun 06 '23 06:06 Sarah-Callies

这里有解释: https://byronhe.com/post/2019/11/25/cppjieba-darts-DAT-memory_optimize/

byronhe avatar Jun 06 '23 06:06 byronhe