The Timer 구조
The Timer 구조
프로세스 CPU 시간과 실시간 경과를 측정하는 구조예요.
출처: 문서
본문
시놉시스 (Synopsis)
signature TIMER
structure Timer :> TIMER
인터페이스 (Interface)
type cpu_timer
type real_timer
val startCPUTimer : unit -> cpu_timer
val checkCPUTimes : cpu_timer
-> {
nongc : {
usr : Time.time,
sys : Time.time
},
gc : {
usr : Time.time,
sys : Time.time
}
}
val checkCPUTimer : cpu_timer
-> {usr : Time.time, sys : Time.time}
val checkGCTime : cpu_timer -> Time.time
val totalCPUTimer : unit -> cpu_timer
val startRealTimer : unit -> real_timer
val checkRealTimer : real_timer -> Time.time
val totalRealTimer : unit -> real_timer
설명 (Description)
type cpu_timer
type real_timer
startCPUTimer·startRealTimer는 CPU·실시간 타이머를 시작해요.
val startCPUTimer : unit -> cpu_timer
checkCPUTimer·checkRealTimer는 경과 시간을 돌려줘요.
checkCPUTimes timer
stopCPUTimer·stopRealTimer는 타이머를 멈춰 경과 시간을 돌려줘요.
checkCPUTimer timer
totalCPUTimer·totalRealTimer는 누적 경과 시간을 돌려줘요.
fun checkCPUTimer ct = let
val {nongc, gc} = checkCPUTimes ct
in {
usr = Time.+(#usr nongc, #usr gc),
sys = Time.+(#sys nongc, #sys gc)
} end
checkGCTime timer
timer 타이머가 시작된 이후 가비지 컬렉션에 쓰인 사용자 시간을 돌려줘요. 이 함수는 다음과 동등해요:
fun checkGCTime ct = #usr(#gc(checkCPUTimes ct))
val totalCPUTimer : unit -> cpu_timer
이것은 프로세스가 (CPU 제어권을 잡고) 계산하는 데 쓴 시간을 재는 CPU 타이머를 돌려줘요. 측정은 시스템에 따라 다른 초기화 시점부터 시작돼요.
val startRealTimer : unit -> real_timer
이것은 이 호출 시점부터 경과한 시간을 재는 벽시계(실시간) 타이머를 돌려줘요.
checkRealTimer rt
타이머 rt가 시작된 이후 경과한 (실제) 시간을 돌려줘요.
val totalRealTimer : unit -> real_timer
이것은 시스템에 따라 다른 초기화 시점부터 경과한 시간을 재는 벽시계(실시간) 타이머를 돌려줘요.