由于`puts" Hello World"`方法中的return语句导致内存泄漏

时间:2018-05-04 14:41:04

标签: ruby memory-leaks emscripten

尝试将Ruby 1.8.7移植到emscripten,我有一个无限循环,通过rb_eval_string使用C API对ruby做一些事情。现在,如果我在循环中只做puts "Hello World",则没有泄漏。接下来,如果我从主循环调用my_func_one,仍然没有内存泄漏,但对于my_func_two,内存使用量不断增加。这些功能定义为

def my_func_one
    puts "Hello World"
end

def my_func_two
    puts "Hello World"
    return
end

这是一个错误还是我做错了什么?

编辑:我的C代码是

void main_update_loop() {
    rb_eval_string("my_func_one");
}

其中主循环设置为emscripten_set_main_loop(main_update_loop, 0, 1);。我使用memoryprofiler.js

衡量内存使用情况

0 个答案:

没有答案