Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

大量内存泄露信息 #45046

Closed
fasiondog opened this issue Aug 10, 2022 · 6 comments
Closed

大量内存泄露信息 #45046

fasiondog opened this issue Aug 10, 2022 · 6 comments
Assignees

Comments

@fasiondog
Copy link

bug描述 Describe the Bug

客户程序在使用 2.3.0、2.3.1 版本的 paddle 时,如果自身编译时进行内存泄露检测,在程序退出时 paddle 会报大量的内存泄露信息,也许是因为 paddle 全局变量的原因也许是真的存在内存泄露,大量的泄露信息导致调用 paddle 的程序无法观察到自身有用的泄露信息
1、如果是paddle存在内存泄露,建议解决并在自动测试时附加内存泄露检测
2、如果是paddle全局变量不释放的原因,建议提供清除paddle全局变量的相关方法,以便使用者不被大量的泄露信息淹没

运行 Paddle-Inference-Demo/c++/cpu/resnet50 实例使用 “-fsanitize=address -fsanitize=leak” 进行编译时内存泄露检测

运行输出如下:

WARNING: Logging before InitGoogleLogging() is written to STDERR
E0810 17:06:11.965164 25662 analysis_config.cc:389] Please compile with MKLDNN first to use MKLDNN
W0810 17:06:11.965679 25662 init.cc:285] AVX is available, Please re-compile on local machine
--- Running analysis [ir_graph_build_pass]
--- Running analysis [ir_graph_clean_pass]
--- Running analysis [ir_analysis_pass]
--- Running IR pass [simplify_with_basic_ops_pass]
--- Running IR pass [layer_norm_fuse_pass]
--- Fused 0 subgraphs into layer_norm op.
--- Running IR pass [attention_lstm_fuse_pass]
--- Running IR pass [seqconv_eltadd_relu_fuse_pass]
--- Running IR pass [seqpool_cvm_concat_fuse_pass]
--- Running IR pass [mul_lstm_fuse_pass]
--- Running IR pass [fc_gru_fuse_pass]
--- fused 0 pairs of fc gru patterns
--- Running IR pass [mul_gru_fuse_pass]
--- Running IR pass [seq_concat_fc_fuse_pass]
--- Running IR pass [gpu_cpu_squeeze2_matmul_fuse_pass]
--- Running IR pass [gpu_cpu_reshape2_matmul_fuse_pass]
I0810 17:06:12.156064 25662 fuse_pass_base.cc:57] --- detected 1 subgraphs
--- Running IR pass [gpu_cpu_flatten2_matmul_fuse_pass]
--- Running IR pass [matmul_v2_scale_fuse_pass]
--- Running IR pass [gpu_cpu_map_matmul_v2_to_mul_pass]
--- Running IR pass [gpu_cpu_map_matmul_v2_to_matmul_pass]
--- Running IR pass [matmul_scale_fuse_pass]
--- Running IR pass [gpu_cpu_map_matmul_to_mul_pass]
--- Running IR pass [fc_fuse_pass]
I0810 17:06:12.169983 25662 fuse_pass_base.cc:57] --- detected 1 subgraphs
--- Running IR pass [repeated_fc_relu_fuse_pass]
--- Running IR pass [squared_mat_sub_fuse_pass]
--- Running IR pass [conv_bn_fuse_pass]
I0810 17:06:12.398134 25662 fuse_pass_base.cc:57] --- detected 53 subgraphs
--- Running IR pass [conv_eltwiseadd_bn_fuse_pass]
--- Running IR pass [conv_transpose_bn_fuse_pass]
--- Running IR pass [conv_transpose_eltwiseadd_bn_fuse_pass]
--- Running IR pass [is_test_pass]
--- Running IR pass [runtime_context_cache_pass]
--- Running analysis [ir_params_sync_among_devices_pass]
--- Running analysis [adjust_cudnn_workspace_size_pass]
--- Running analysis [inference_op_replace_pass]
--- Running analysis [memory_optimize_pass]
I0810 17:06:12.472333 25662 memory_optimize_pass.cc:216] Cluster name : inputs size: 602112
I0810 17:06:12.472349 25662 memory_optimize_pass.cc:216] Cluster name : batch_norm_14.tmp_2 size: 1605632
I0810 17:06:12.472352 25662 memory_optimize_pass.cc:216] Cluster name : batch_norm_4.tmp_2 size: 3211264
I0810 17:06:12.472353 25662 memory_optimize_pass.cc:216] Cluster name : elementwise_add_0 size: 3211264
I0810 17:06:12.472355 25662 memory_optimize_pass.cc:216] Cluster name : relu_0.tmp_0 size: 3211264
--- Running analysis [ir_graph_to_program_pass]
I0810 17:06:12.589078 25662 analysis_predictor.cc:1035] ======= optimize end =======
I0810 17:06:12.589345 25662 naive_executor.cc:102] --- skip [feed], feed -> inputs
I0810 17:06:12.595438 25662 naive_executor.cc:102] --- skip [save_infer_model/scale_0.tmp_1], fetch -> fetch
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0810 17:06:12.898284 25662 resnet50_test.cc:84] run avg time is 301.471 ms
I0810 17:06:12.898346 25662 resnet50_test.cc:104] 0 : 8.76165e-29
I0810 17:06:12.898355 25662 resnet50_test.cc:104] 100 : 8.76165e-29
I0810 17:06:12.898358 25662 resnet50_test.cc:104] 200 : 8.76165e-29
I0810 17:06:12.898361 25662 resnet50_test.cc:104] 300 : 8.76165e-29
I0810 17:06:12.898365 25662 resnet50_test.cc:104] 400 : 8.76165e-29
I0810 17:06:12.898366 25662 resnet50_test.cc:104] 500 : 8.76165e-29
I0810 17:06:12.898370 25662 resnet50_test.cc:104] 600 : 1.05767e-19
I0810 17:06:12.898372 25662 resnet50_test.cc:104] 700 : 2.04095e-23
I0810 17:06:12.898375 25662 resnet50_test.cc:104] 800 : 3.85259e-25
I0810 17:06:12.898378 25662 resnet50_test.cc:104] 900 : 8.76165e-29

=================================================================
==25662==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 320 byte(s) in 1 object(s) allocated from:
#0 0x7ff02cdb1587 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cc:104
#1 0x7ff027bc8b46 in std::_Function_handler<paddle::framework::OperatorBase* (std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, boost::variant<boost::blank, int, float, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<int, std::allocator >, std::vector<float, std::allocator >, std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > >, bool, std::vector<bool, std::allocator >, paddle::framework::BlockDesc*, long, std::vector<paddle::framework::BlockDesc*, std::allocatorpaddle::framework::BlockDesc* >, std::vector<long, std::allocator >, std::vector<double, std::allocator >, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void>, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, boost::variant<boost::blank, int, float, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<int, std::allocator >, std::vector<float, std::allocator >, std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > >, bool, std::vector<bool, std::allocator >, paddle::framework::BlockDesc*, long, std::vector<paddle::framework::BlockDesc*, std::allocatorpaddle::framework::BlockDesc* >, std::vector<long, std::allocator >, std::vector<double, std::allocator >, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> > > > const&), paddle::framework::details::OpInfoFiller<paddle::operators::CompareOp<_less_equalComment>, (paddle::framework::details::OpInfoFillType)0>::operator()(char const*, paddle::framework::OpInfo*) const::{lambda(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, boost::variant<boost::blank, int, float, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<int, std::allocator >, std::vector<float, std::allocator >, std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > >, bool, std::vector<bool, std::allocator >, paddle::framework::BlockDesc*, long, std::vector<paddle::framework::BlockDesc*, std::allocatorpaddle::framework::BlockDesc* >, std::vector<long, std::allocator >, std::vector<double, std::allocator >, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void>, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, boost::variant<boost::blank, int, float, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<int, std::allocator >, std::vector<float, std::allocator >, std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > >, bool, std::vector<bool, std::allocator >, paddle::framework::BlockDesc*, long, std::vector<paddle::framework::BlockDesc*, std::allocatorpaddle::framework::BlockDesc* >, std::vector<long, std::allocator >, std::vector<double, std::allocator >, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> > > > const&)#1}>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allo
#2 0x7ff027bcb7a8 in paddle::framework::details::OpInfoFiller<paddle::operators::CompareOp<_less_equalComment>, (paddle::framework::details::OpInfoFillType)0>::operator()(char const*, paddle::framework::OpInfo*) const (/home/ljh/git-view/Paddle-Inference-Demo/c++/cpu/resnet50/../../lib/paddle_inference/paddle/lib/libpaddle_inference.so+0x19f37a8)
#3 0x7ff027bcf3ae in paddle::framework::OperatorRegistrar<paddle::operators::CompareOp<_less_equalComment>, paddle::operators::CompareOpProtoMaker<_less_equalComment>, paddle::framework::EmptyGradOpMakerpaddle::framework::OpDesc, paddle::framework::EmptyGradOpMakerpaddle::imperative::OpBase, less_equal_InferShapeFunctor>::OperatorRegistrar(char const*) (/home/ljh/git-view/Paddle-Inference-Demo/c++/cpu/resnet50/../../lib/paddle_inference/paddle/lib/libpaddle_inference.so+0x19f73ae)
#4 0x7ff02746bbea (/home/ljh/git-view/Paddle-Inference-Demo/c++/cpu/resnet50/../../lib/paddle_inference/paddle/lib/libpaddle_inference.so+0x1293bea)
#5 0x7ff02d707b99 in call_init /build/glibc-SzIz7B/glibc-2.31/elf/dl-init.c:72

Direct leak of 320 byte(s) in 1 object(s) allocated from:
#0 0x7ff02cdb1587 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cc:104
#1 0x7ff027bc8816 in std::_Function_handler<paddle::framework::OperatorBase* (std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, boost::variant<boost::blank, int, float, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<int, std::allocator >, std::vector<float, std::allocator >, std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > >, bool, std::vector<bool, std::allocator >, paddle::framework::BlockDesc*, long, std::vector<paddle::framework::BlockDesc*, std::allocatorpaddle::framework::BlockDesc* >, std::vector<long, std::allocator >, std::vector<double, std::allocator >, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void>, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, boost::variant<boost::blank, int, float, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<int, std::allocator >, std::vector<float, std::allocator >, std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > >, bool, std::vector<bool, std::allocator >, paddle::framework::BlockDesc*, long, std::vector<paddle::framework::BlockDesc*, std::allocatorpaddle::framework::BlockDesc* >, std::vector<long, std::allocator >, std::vector<double, std::allocator >, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> > > > const&), paddle::framework::details::OpInfoFiller<paddle::operators::CompareOp<_greater_thanComment>, (paddle::framework::details::OpInfoFillType)0>::operator()(char const*, paddle::framework::OpInfo*) const::{lambda(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, boost::variant<boost::blank, int, float, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<int, std::allocator >, std::vector<float, std::allocator >, std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > >, bool, std::vector<bool, std::allocator >, paddle::framework::BlockDesc*, long, std::vector<paddle::framework::BlockDesc*, std::allocatorpaddle::framework::BlockDesc* >, std::vector<long, std::allocator >, std::vector<double, std::allocator >, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void>, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, boost::variant<boost::blank, int, float, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<int, std::allocator >, std::vector<float, std::allocator >, std::vector<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::cxx11::basic_string<char, std::char_traits, std::allocator > > >, bool, std::vector<bool, std::allocator >, paddle::framework::BlockDesc*, long, std::vector<paddle::framework::BlockDesc*, std::allocatorpaddle::framework::BlockDesc* >, std::vector<long, std::allocator >, std::vector<double, std::allocator >, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> > > > const&)#1}>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::al
#2 0x7ff027bcbfd8 in paddle::framework::details::OpInfoFiller<paddle::operators::CompareOp<_greater_thanComment>, (paddle::framework::details::OpInfoFillType)0>::operator()(char const*, paddle::framework::OpInfo*) const (/home/ljh/git-view/Paddle-Inference-Demo/c++/cpu/resnet50/../../lib/paddle_inference/paddle/lib/libpaddle_inference.so+0x19f3fd8)
#3 0x7ff027bcef4e in paddle::framework::OperatorRegistrar<paddle::operators::CompareOp<_greater_thanComment>, paddle::operators::CompareOpProtoMaker<_greater_thanComment>, paddle::framework::EmptyGradOpMakerpaddle::framework::OpDesc, paddle::framework::EmptyGradOpMakerpaddle::imperative::OpBase, greater_than_InferShapeFunctor>::OperatorRegistrar(char const*) (/home/ljh/git-view/Paddle-Inference-Demo/c++/cpu/resnet50/../../lib/paddle_inference/paddle/lib/libpaddle_inference.so+0x19f6f4e)
#4 0x7ff02746bd0a (/home/ljh/git-view/Paddle-Inference-Demo/c++/cpu/resnet50/../../lib/paddle_inference/paddle/lib/libpaddle_inference.so+0x1293d0a)
#5 0x7ff02d707b99 in call_init /build/glibc-SzIz7B/glibc-2.31/elf/dl-init.c:72

……
……

SUMMARY: AddressSanitizer: 6080 byte(s) leaked in 19 allocation(s).

其他补充信息 Additional Supplementary Information

No response

@paddle-bot
Copy link

paddle-bot bot commented Aug 10, 2022

您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档常见问题历史IssueAI社区来寻求解答。祝您生活愉快~

Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the APIFAQGithub Issue and AI community to get the answer.Have a nice day!

@fasiondog
Copy link
Author

补充下,2.1.1 版本不存在这些内存泄露信息

@wanghuancoder
Copy link
Contributor

感谢您的反馈!我让预测相关研发同学研究一下您的这种情况。

@jiweibo
Copy link
Contributor

jiweibo commented Aug 11, 2022

这个看起来是误报,paddle注册的operator、kernel等都是static的,要等进程退出前才会释放。
可以用gperftools或者长时间运行的方式检查内存泄露。

@fasiondog
Copy link
Author

这个看起来是误报,paddle注册的operator、kernel等都是static的,要等进程退出前才会释放。 可以用gperftools或者长时间运行的方式检查内存泄露。

不可能靠长时间运行这种方式来检查内存泄露,还是测试时就把可能的检测点覆盖,有没有泄露,测试完立刻就知道了。

@paddle-bot paddle-bot bot added status/following-up 跟进中 and removed status/new-issue 新建 labels Aug 11, 2022
@fasiondog
Copy link
Author

解决了?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants