프로그램이 느린데 어디서 시간이 쓰이는지 감이 잡히지 않는다면 Callgrind로 만든 프로파일을 함수별로 살펴볼 수 있습니다. Klisi는 그 파일을 열어 비용이 큰 함수와 호출 관계를 보여 주는 Linux 프로그램입니다. Flathub에 등록된 0.6.5를 무료로 설치하고, 첫 프로파일에서 조사할 함수를 고르는 순서를 정리했습니다.
여기서 비용은 무조건 초 단위 실행 시간이 아닙니다. Callgrind 파일에 기록된 이벤트의 단위에 따라 명령어 수나 다른 비용으로 표시될 수 있습니다. 수치가 큰 함수를 먼저 찾되, 어떤 이벤트를 측정했는지 프로파일 정보에서 확인해야 성능을 잘못 해석하지 않습니다.
함수 목록과 소스·호출 관계를 한 화면에서 봅니다
Klisi의 공식 메인 화면 왼쪽 위에는 Functions 목록이 있고 Total과 Self 열이 나란히 보입니다. Total은 함수가 호출한 다른 함수의 비용까지 포함하고 Self는 그 호출 비용을 뺀 값입니다. 두 숫자를 함께 보면 느린 함수가 자기 코드 때문에 무거운지, 아래에서 부른 함수 때문에 무거운지 구분할 출발점을 잡을 수 있습니다.
함수 하나를 고르면 오른쪽 Source Code 화면과 아래 Callees·Callers가 바뀝니다. Callees는 선택한 함수가 부른 함수, Callers는 그 함수를 부른 쪽입니다. 호출한 곳과 호출된 곳을 각각 눌러 탐색할 수 있으므로, 이름이 낯선 라이브러리 함수에서도 원래의 호출 경로를 따라갈 수 있습니다.
아래쪽 Objects와 Files에서는 대상 오브젝트나 소스 파일로 범위를 줄일 수 있습니다. 함수 검색을 쓰면 이름으로 바로 좁힐 수도 있습니다. 파일을 하나 고른 뒤 Function 목록의 비용을 다시 보면 프로젝트 안의 특정 소스 파일에 집중하기 쉽습니다. 화면을 많이 채운 함수가 반드시 수정 대상이라는 뜻은 아니며 입력과 측정 조건을 함께 확인해야 합니다.
소스 코드가 표시된다면 줄 옆의 빨간 비용 숫자를 볼 수 있습니다. 개발자 문서에는 소스 코드 줄을 선택하면 해당 줄에서 호출된 Callees만 따로 볼 수 있다고 설명합니다. 전체 함수 비용에서 문제를 발견한 다음 그 함수의 어느 호출 지점이 큰지 좁히는 데 쓰는 기능입니다.
Klisi는 Callgrind 프로파일을 새로 측정하는 도구라기보다 이미 생성한 파일을 읽는 뷰어입니다. 공식 설명은 프로파일 보기와 함수 비용 분석에 초점을 둡니다. 아직 Callgrind 파일이 없다면 먼저 측정 도구에서 대상 프로그램을 실행해 파일을 만들고, Klisi에서는 그 결과 파일을 열어야 합니다.
공식 화면에서 함수 비용과 파일 권한 안내를 확인하세요
Flathub의 실제 Klisi 화면입니다. 첫 화면은 Total·Self 함수 목록과 소스·호출 관계, 둘째는 프로파일 요약, 셋째는 소스 폴더 접근 허용 안내를 보여 줍니다. 화면 사진에는 버전 숫자가 보이지 않으므로 현재 배포 버전은 별도로 Flathub 목록에서 확인했습니다.
| 프로그램 | Klisi |
| 버전 | 0.6.5 |
| 배포 | Flathub · Linux x86_64/aarch64 |
| 가격 | 무료 · GPL-3.0-or-later |
| 입력 | Callgrind 프로파일 파일 |
| 개발 | Charalampos Kardaris |
Flathub 설치 뒤 프로파일 파일을 엽니다
Flathub 목록에는 Linux x86_64와 aarch64가 표시됩니다. 먼저 자신의 시스템 구조와 Flatpak·Flathub 설정을 확인하세요. 설치할 때 앱 ID com.ckardaris.Klisi를 대조하면 이름이 비슷한 다른 패키지와 혼동하기 어렵습니다. .flatpakref는 앱 전체가 든 큰 설치 파일이 아니라 Flathub 설치 대상을 가리키는 참조 파일입니다.
설치 후 앱 목록에서 Klisi를 실행하면 시작 화면에 Open Profile…이 나타납니다. 이 항목을 누르거나 위쪽 메뉴의 Open Profile…을 선택하고 Callgrind가 만든 프로파일 파일을 지정하세요. Ctrl+O도 같은 열기 동작입니다. 파일을 고른 뒤 함수 목록과 소스·호출 패널이 뜨는지 확인합니다.
파일 이름만 보고 원래 측정 대상 프로그램을 단정하지 마세요. 여러 번 프로파일을 만들었다면 파일 생성 시점과 실행한 명령을 먼저 맞춰 보는 것이 좋습니다. Klisi의 프로파일 정보 요약에는 기록된 명령과 이벤트, 함수·파일 수 등이 나타날 수 있어 잘못된 실행 결과를 보고 있는지 점검하는 데 도움이 됩니다.
- Linux가 x86_64 또는 aarch64인지 확인하고 Flathub에서 com.ckardaris.Klisi를 설치합니다.
- Klisi 시작 화면에서 Open Profile…을 눌러 분석할 Callgrind 파일을 고릅니다.
- Functions 목록과 오른쪽 패널이 열렸는지 확인합니다.
Total과 Self를 비교해 조사할 함수를 고릅니다
프로파일이 열리면 Functions 목록에서 비용이 큰 함수를 먼저 찾습니다. Total은 아래 호출까지 포함한 누적 비용, Self는 그 함수 자체에서 쓴 비용입니다. 예를 들어 Total이 높고 Self가 낮다면 먼저 Callees에서 호출된 함수를 살펴보세요. 반대로 Self가 높다면 선택한 함수의 소스 줄을 직접 볼 이유가 커집니다.
숫자 옆에 백분율이 보이는지 절대값이 보이는지는 왼쪽 사이드바의 Relative costs 설정에 따라 달라집니다. 값이 60이라고 해서 곧바로 60초를 뜻하는 것은 아닙니다. 측정한 이벤트를 확인하고, 같은 조건에서 얻은 프로파일끼리 비교해야 변화 방향을 설명할 수 있습니다.
함수가 너무 많으면 Ctrl+F로 검색을 열어 함수 이름을 입력합니다. 프로젝트 특정 파일이 의심된다면 Files에서 파일을 고르거나 Objects에서 해당 오브젝트를 좁혀 보세요. 선택 결과에 맞춰 Functions가 줄어드므로 긴 목록을 위아래로 훑기보다 빠르게 범위를 좁힐 수 있습니다.
- Functions에서 비용이 큰 함수를 하나 고릅니다.
- Total과 Self의 차이를 확인하고 아래 Callees를 봅니다.
- 필요하면 Ctrl+F 또는 Files 선택으로 조사 범위를 줄입니다.
호출 경로와 소스 줄에서 원인을 좁힙니다
함수를 선택한 뒤 오른쪽 Source Code에 소스가 나오면 빨간 비용 수치가 큰 줄을 봅니다. 소스 줄을 선택하면 Callees에 그 줄에서 부른 함수만 남길 수 있습니다. 이때 Callees의 비용이 커 보이는 호출을 눌러 해당 함수로 이동하면 문제 구간을 더 구체적으로 추적할 수 있습니다.
Callers에는 현재 함수를 호출한 쪽이 보입니다. 지금 보고 있는 함수가 외부 라이브러리라면 Callers를 눌러 프로젝트 코드에서 그 함수를 어떻게 부르는지 확인하세요. 상단 뒤로·앞으로 화살표는 탐색한 함수 기록을 오가는 데 쓰이므로 여러 호출을 살핀 뒤 처음의 후보로 돌아갈 수 있습니다.
프로파일 정보 아이콘을 열면 Summary와 원본 Profile 탭을 볼 수 있습니다. 요약에는 생성 도구, 실행 명령, 이벤트, 함수와 파일 수 같은 정보가 들어갑니다. 이 내용은 비용의 단위를 읽는 데 중요합니다. 측정 데이터가 명령어 이벤트라면 제목의 느린 함수는 실제 벽시계 시간으로 검증한 결론이 아니라 추가 조사가 필요한 후보입니다.
- 후보 함수를 골라 Source Code의 비용이 큰 줄을 봅니다.
- 그 줄의 Callees를 눌러 하위 호출을 추적합니다.
- Callers와 프로파일 정보에서 원래 호출자·측정 이벤트를 확인합니다.
소스가 비어 있거나 파일을 못 열 때
함수 비용은 보이는데 Source Code가 비어 있으면 화면의 Allow…를 확인하세요. Flatpak은 처음부터 사용자 파일 전체를 볼 수 없으므로 프로젝트 소스 디렉터리에 대한 권한이 필요할 수 있습니다. 공식 문서대로 Allow…를 누르고 열린 확인 창에서 Confirm을 선택하면 그 경로의 소스가 표시되는지 다시 볼 수 있습니다.
권한을 주는 창에서 다른 폴더로 이동해 선택하면 Klisi가 기대한 경로와 달라 승인되지 않을 수 있습니다. 공식 문서는 파일이나 폴더를 새로 고르지 말고 확인만 누르라고 안내합니다. 소스 경로가 애초에 프로파일에 없거나 현재 컴퓨터에 파일이 없다면 권한만으로 코드가 나타나지 않습니다.
프로파일 파일 자체를 열 수 없다면 우선 그 파일이 Callgrind 형식인지 확인하세요. 다른 프로파일러의 결과나 압축 파일을 그대로 고르면 함수 목록이 뜨지 않을 수 있습니다. 파일 관리자에서 실제 결과 파일을 고르고, 같은 오류가 반복되면 개발자 문서의 열기 방법과 원본 파일 형식을 대조하세요.
- Source Code에 Allow…가 보이면 클릭합니다.
- 열린 시스템 확인 창에서 경로를 바꾸지 않고 Confirm을 누릅니다.
- 소스가 여전히 비어 있으면 프로파일의 경로와 현재 파일 위치를 비교합니다.
자주 묻는 질문
Klisi가 실행 시간을 초 단위로 보여 주나요?
항상 그렇지는 않습니다. Callgrind 프로파일의 비용은 수집한 이벤트에 따라 달라집니다. 프로파일 정보의 Main Event를 확인한 뒤 Total·Self를 해석하세요.
프로파일 파일을 어떻게 열 수 있나요?
Klisi 시작 화면의 Open Profile…, 상단 메뉴의 같은 항목 또는 Ctrl+O를 사용하세요. Callgrind 형식의 실제 결과 파일을 선택해야 합니다.
함수 목록은 보이는데 소스 코드가 비어 있습니다.
Flatpak이 프로젝트 폴더를 볼 권한이 없을 수 있습니다. Source Code의 Allow…와 시스템 확인 창의 Confirm을 차례로 누르고, 경로를 임의로 바꾸지 마세요.
특정 파일의 함수만 볼 수 있나요?
Files에서 해당 소스 파일을 선택하면 함수 목록을 좁힐 수 있습니다. 함수 이름을 안다면 Ctrl+F 검색도 사용할 수 있습니다.
Windows와 macOS에서도 같은 파일을 설치할 수 있나요?
이번 공식 무료 배포 경로는 Flathub의 Linux x86_64·aarch64용입니다. 다른 운영체제 설치 파일로 안내하지 않습니다.
측정 조건을 확인한 뒤 큰 함수부터 좁혀 보세요
Klisi로 Callgrind 파일을 열었다면 Functions의 Total·Self에서 후보를 고르고 Callees·Callers와 소스 줄로 들어가세요. 마지막에는 프로파일 정보에서 측정 이벤트를 확인해야 숫자가 뜻하는 바를 설명할 수 있습니다. 우선 한 실행 결과에서 비용이 큰 호출 경로를 찾고, 코드를 바꾼 뒤 같은 조건으로 다시 측정하는 순서가 좋습니다.
공식 자료와 확인일
Klisi 개발자 소개와 설치 경로 · Klisi 사용법: 함수 목록·권한·프로파일 정보 · Klisi 0.6.5 공식 릴리스 · Klisi Flathub 무료 Linux 배포 | 2026-11-09T10:12:50.758651+00:00


