Вступить в клуб →
сложнаявопросПроизводительность и низкие задержки

perf report показывает 38% в memmove, но непонятно, кто его вызывает

Сервис тормозит под нагрузкой. Сняли профиль:

$ perf record -p 4121 -- sleep 30
$ perf report
  38.12%  service  libc.so.6  [.] __memmove_avx_unaligned_erms
   9.40%  service  service    [.] Parser::feed
   6.02%  service  libc.so.6  [.] malloc

memmove в коде сервиса напрямую не вызывается. Как найти, откуда берутся эти 38%?

  • Записать профиль с графом вызовов: perf record -g
  • Пересобрать glibc с отладочными символами
  • Добавить таймеры в каждую функцию сервиса
  • Запустить сервис под Valgrind Memcheck

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела