본문으로 바로가기

[PHP] microtime

category Helloworld!/PHP 2013. 7. 10. 22:55

현재 시각을 알려주는 대표적인 함수는 두가지가 있다.

첫번째, time()

두번째, microtime()


time 함수는 최소단위가 1초 이기때문에 1초 미만 걸리는 소요시간은 측정할 수 없다.

예를들어

echo time();
을 하면 1199169216이라는 출력 값을 볼 수 있다.


하지만 microtime

echo microtime();
을 하면 0.07563600 1199169216라고 나오는데

이는 한 자리의 공백을 띄우고 두개의 수가 출력되는 것을 볼 수 있다.

뒷 쪽에 time() 함수 결과와 같이 1초 단위의 현재 시각(소수점 이하의 초)이 출력되고

앞쪽은 1초 미만 단위의 현재 정밀 시각(자연수 형태의 초)이 출력되는 것인데

각각 마이크로 seconds와 Unix timestamp (sec 단위)가 나오는 것이라고 한다.


좀 더 전문적이게(?) 말하자면 microtime은 백만분의 1초까지 측정한 시간 값을 알려주는 함수로써 

공백을 사이로 유닉스 형식의 시간을 100만분의 1초 단위로 반환한 것과 유닉스 형식의 시간이 나온다.


참고) 유닉스의 형식의 시간은 1970년 1월 1일 0시 0분 0초를 시작으로 몇 초가 흘렀는지 나타냄


microtime은 주로 어떤 알고리즘을 처리하는 데 걸리는 시간을 측정한다든지, 웹 페이지를 모두

출력하는데 걸리는 시간이 얼마인지 등을 측정하는데 사용한다.


그렇다면 microtime(true)는 무엇인가?

php.net을 보면

mixed microtime([bool get_as_float])라고 되있고 get_as_float의 기본값을 FALSE이다.

여기서, get_as_float를 TRUE로 설정하면 부동 소수형 2자릴 더한 값으로 반환하게 된다.

즉, 예를 들자면 다음과 같다는 것.

echo microtime(); //0.12323700 1312894815
echo microtime(TRUE); //1312894815.12 (1312894815 + 0.12)