Open
Description
Product: Tarantool
Since: 2.10
Root document: https://www.tarantool.io/en/doc/latest/book/app_server/luajit_memprof/
Dev issue: tarantool/tarantool#5679
SME: @ igormunkin , @ Buristan
Details
The memory profiler reports the source line as 0 if a trace or other JIT-related stuff is allocated inside some Lua chunk.
For example, if we have the <test.lua> file with the following code
local f1, msg1, errno1 = misc.memprof.start("/tmp/tmp_memprofile.bin")
for _ = 1, 100 do
local _ = {_, _}
end
we get the following output from the profiler parser.
ALLOCATIONS
@test.lua:0, line 3: 57 3192 0
@test.lua:0, line 0: 4 640 0 <- JIT-related allocations
INTERNAL: 2 438 0
REALLOCATIONS
DEALLOCATIONS
INTERNAL: 24 0 1177
Overrides:
@test.lua:0, line 3
INTERNAL
It can confuse the users, so it's better to report all JIT-related allocations as INTERNAL.