[SLAM] 11. Profiler

happy_quokka·2023년 11월 24일
0

SLAM

목록 보기
12/28

easy profiler 사용

  • SLAM의 경우 여러 thread를 사용하는데 easy profiler는 어떤 스레드가 어떻게 돌고 있는지 잘 보여준다
  • 가볍다
  • 어떤 알고리즘을 사용하면 빠른지 알 수 있다
  • 어떤 알고리즘이 cpu core를 덜 쓰는가
  • 파이프라인을 볼 때 cpu planning을 볼 수 있다

easy profiler 사용법

  • examples/example1.cpp에서 사용했다.
  • EASY_PROFILER_LIBS로 넣어져있다
  • easy profiler 불러오기
#define USING_EASY_PROFILER //이걸 끄면 Class.cpp안에서 매크로를 사용할 수 없다
#include "easy/profiler.h"
  • 사용법
    • EASY_PROFILER_ENABLE : easy profiler 실행
    • EASY_BLOCK("이름", 색) ~ EASY_END_BLOCK : 어떤 블록을 재고 싶을 때 / 이 사이의 시간과 CPU 점유율을 잴 수 있다. / block 안에 block을 둘 수 있다
    • profiler::dumpBlocksToFile("경로") : 파일로 저장
int main()
{
    EASY_PROFILER_ENABLE;
    spdlog::info("Spdlog is activated!");

    EASY_BLOCK("Outer block", profiler::colors::Black);
    for (int i = 0; i < 10; ++i)
    {
        EASY_BLOCK("Inner block", profiler::colors::Amber);
        usleep(10000);
        EASY_END_BLOCK
    }
    EASY_END_BLOCK

    profiler::dumpBlocksToFile("../test_profile.prof");
    return 0;
}

easy profiler에서 제공하는 프로그램

profiler_converter

  • .prof 파일을 json파일로 바꿔준다
  • 후에 바뀐 json 파일을 분석하여 어떤 프로세스가 평균 몇 ms동안 돌아가는지 등을 알 수 있다.

profiler_gui

  • 터미널에서 실행
  • prof 파일을 드래그 해서 넣으면 볼 수 있다

0개의 댓글