시스템 통계
시스템 통계
메모리 사용과 실행 시간 통계를 얻는 술어들을 설명해요.
본문
statistics/0, statistics/2
Templates
statistics
statistics(?atom, ?list)
Description
statistics는 메모리 사용과 실행 시간에 대한 통계를 표시해요.
statistics(Key, Value)는 통계 키 Key의 현재 값과 Value를 통일해요. Value는 두 요소의 리스트예요. 시간은 밀리초, 영역 크기는 바이트 단위예요.
| Key | 설명 | 값 |
|---|---|---|
user_time |
사용자 CPU 시간 | [SinceStart, SinceLast] |
system_time |
시스템 CPU 시간 | [SinceStart, SinceLast] |
cpu_time |
총 CPU 시간(사용자 + 시스템) | [SinceStart, SinceLast] |
real_time |
절대 시간 | [SinceStart, SinceLast] |
local_stack |
지역 스택 크기(제어, 환경, 선택) | [UsedSize, FreeSize] |
global_stack |
전역 스택 크기(복합 항) | [UsedSize, FreeSize] |
trail_stack |
트레일 스택 크기(취소할 변수 바인딩) | [UsedSize, FreeSize] |
cstr_stack |
제약 트레일 크기(유한 도메인 제약) | [UsedSize, FreeSize] |
atoms |
원자 테이블 | [NumberOfAtoms, FreeNumberOfAtoms] |
참고로 호환성 목적으로 키 runtime은 user_time으로 인식돼요.
Errors
- Key가 변수도 유효한 키도 아님 —
domain_error(statistics_key, Key) - Value가 변수도 두 요소의 리스트도 아님 —
domain_error(statistics_value, Value) - Value가 두 요소의 리스트이고 어떤 요소 E가 변수도 정수도 아님 —
type_error(integer, E)
Portability: GNU Prolog 술어.
user_time/1, system_time/1, cpu_time/1, real_time/1
Templates
user_time(?integer)
system_time(?integer)
cpu_time(?integer)
real_time(?integer)
Description
user_time(Time)— Time과 Prolog 시작 이후 경과된 사용자 CPU 시간을 통일.system_time(Time)— Time과 Prolog 시작 이후 경과된 시스템 CPU 시간을 통일.cpu_time(Time)— Time과 Prolog 시작 이후 경과된 CPU 시간(사용자 + 시스템)을 통일.real_time(Time)— Time과 Prolog 시작 이후 경과된 절대 시간을 통일.
Errors
- Time이 변수도 정수도 아님 —
type_error(integer, Time)
Portability: GNU Prolog 술어.