У меня есть следующий вывод для отчета о производительности (о malloc) для процесса A, B:
записано: perf record -e cycles:u
Процесс А:
0.00% 1833448 Test-Recv libc-2.17.so [.] malloc
0.00% 1833385 Test-Recv [kernel.kallsyms] [k] system_call
0.00% 916588 Test-Recv libc-2.17.so [.] _int_malloc
а также следующее для процесса B:
24.90% 10855848444 test.exe libc-2.17.so [.] _int_malloc
15.78% 6881565672 test.exe libc-2.17.so [.] _int_free
7.48% 3261672221 test.exe libc-2.17.so [.] malloc
4.66% 2030332370 test.exe libc-2.17.so [.] systrim.isra.2
2.43% 1061251259 test.exe libc-2.17.so [.] free
2.12% 925588492 test.exe test.exe [.] main
Оба они делают некоторые malloc в исходном коде.
Могу ли я предположить, что в случае процесса A malloc действительно вызывает системный вызов, но в случае процесса B системный вызов не происходит, поскольку в отчете о производительности процесса B вообще нет [k] system_call !!!