Пытаясь портировать Ruby 1.8.7 на emscripten, у меня есть бесконечный цикл, который делает некоторые вещи с ruby, используя C API, rb_eval_string
. Теперь, если я сделаю просто 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