<HTML><BODY><div>Hi, Sergey!</div><div>Sure, consider this script:</div><div><div><div>| jit.off()</div><div>| misc.sysprof.start{mode = 'C', interval=10}</div><div>| for i = 1, 1e7 do tostring(i) end</div><div>| misc.sysprof.stop()</div></div></div><div> </div><div>After running it with luajit you can parse the output</div><div>like this:</div><div>| $ time -v luajit-parse-sysprof sysprof.bin</div><div> </div><div>So, before the patch:</div><div>| Maximum resident set size (kbytes): 224928</div><div> </div><div>And after the patch:</div><div><div><div>| Maximum resident set size (kbytes): 32780</div><div> </div><div>Which is 85% reduction in memory consumption.</div></div></div><div data-signature-widget="container"><div data-signature-widget="content"><div>--<br>Best regards,</div><div>Maxim Kokryashkin</div></div></div><div> </div><div> </div><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">Вторник, 5 сентября 2023, 14:53 +03:00 от Sergey Bronnikov <sergeyb@tarantool.org>:<br> <div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_16939148370749566697_BODY">Hi, Max<br><br>thanks for the patch. See my comment below.<br><br><br>On <span class="js-phone-number">8/28/23 18</span>:23, Maxim Kokryashkin wrote:<div class="mail-quote-collapse">> Since both of the profiler parsers are now processing<br>> the events in a stream-like fashion, the generation<br>> mechanism is excessive and can be purged. This results<br>> in a significant memory consumption drop, especially<br>> for the AVL-tree part.</div><br>Would be interesting to see a numbers with memory consumption<br><br>before and after the patch.<br><br> </div></div></div></div></blockquote><div> </div></BODY></HTML>