관심을 가지고 보고 계시는 값은 reset 될 필요가 없는 항목입니다.
특정한 시점에서 읽고, 몇 초후에 다시 읽어서 둘의 차이를 비교/분석하는 방식으로 사용합니다.
어플리케이션에서 계산할 때, unsigned 로 처리해야합니다. overflow 에 신경쓰지 않아도 잘 계산됩니다만.... 문제가 없지는 않죠.
예를 들어 특정한 시점에서 한번 읽고, 400 년쯤 후에 다시 읽어서 분석하려한다면, 그 사이에 발생한 overflow 는 감지가 안 됩니다.
관심을 가지고 보고
관심을 가지고 보고 계시는 값은 reset 될 필요가 없는 항목입니다.
특정한 시점에서 읽고, 몇 초후에 다시 읽어서 둘의 차이를 비교/분석하는 방식으로 사용합니다.
어플리케이션에서 계산할 때, unsigned 로 처리해야합니다. overflow 에 신경쓰지 않아도 잘 계산됩니다만.... 문제가 없지는 않죠.
예를 들어 특정한 시점에서 한번 읽고, 400 년쯤 후에 다시 읽어서 분석하려한다면, 그 사이에 발생한 overflow 는 감지가 안 됩니다.
^^
예 저도.. 그 생각은 했어요..
현재 타이머를 따로 만들어서 주기적으로 그 값을 가지고 오긴 합니다.
가령 unsigned long long으로 하면 2^64 값까지 가지고 올 수 있죠..
(처음에는 unsigned long으로 가져오는데 한계를 넘어서
값을 이상하게 가져 오는 현상을 보고 이런 문제점을 알게 되었습니다.)
근데 이 값보다 큰 값이 기록될수도 있는지 그게 궁금하더라구요.
2^64면 어마어마한 수이기 때문에 언제 그 수에 도달할지도 모르겠구요.
이 값보다 크면 unsigned long long으로도 못 가져오게 되니까요.
아무튼 계속 늘어만 가는 Idle 상태 값 때문에 끄적여봤습니다.
HZ 를 대략 2^10 으로
HZ 를 대략 2^10 으로 한다치면 overflow 까지 2^54 초가 걸리고,
하루가 60*60*24=86400 초,
대략 208499982748 일 정도가 걸리는군요.
1년을 365일로 한다치면 571232829 년 정도.
타이머 주기 정하실 때 참고하세요 ㅎㅎ
게시판에 글 적을 시간이면 계산기 눌러보고도 남습니다.
댓글 달기