php microtime獲取浮點(diǎn)的時(shí)間戳
更新時(shí)間:2010年02月21日 10:24:08 作者:
看到別人的源碼中用microtime(true),查了下手冊,原來從PHP 5.0.0 開始,microtime增加了這個(gè)參數(shù)。
一直以來用這個(gè)函數(shù)獲?。?
function microtime_float(){
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
看到別人的源碼中用microtime(true),查了下手冊,原來從PHP 5.0.0 開始,microtime增加了這個(gè)參數(shù)。
引用
mixed microtime ( [bool get_as_float] )
microtime() 當(dāng)前 Unix 時(shí)間戳以及微秒數(shù)。本函數(shù)僅在支持 gettimeofday() 系統(tǒng)調(diào)用的操作系統(tǒng)下可用。
如果調(diào)用時(shí)不帶可選參數(shù),本函數(shù)以 "msec sec" 的格式返回一個(gè)字符串,其中 sec 是自 Unix 紀(jì)元(0:00:00 January 1, 1970 GMT)起到現(xiàn)在的秒數(shù),msec 是微秒部分。字符串的兩部分都是以秒為單位返回的。
如果給出了 get_as_float 參數(shù)并且其值等價(jià)于 TRUE,microtime() 將返回一個(gè)浮點(diǎn)數(shù)。
注意: get_as_float 參數(shù)是 PHP 5.0.0 新加的。
如果程序肯定在PHP5以上的環(huán)境運(yùn)行,那么就直接使用microtime(true)吧,比使用microtime_float函數(shù)至少快兩倍。以下是我簡單測試的程序代碼。
<?php
function microtime_float3(){
return microtime(true);
}
function microtime_float2(){
if( PHP_VERSION > 5){
return microtime(true);
}else{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
}
function microtime_float(){
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
function runtime($t1){
return number_format((microtime_float() - $t1)*1000, 4).'ms';
}
$t1 = microtime_float();
for($i=0;$i<10000;$i++){
microtime_float();
}
echo "microtime_float=====";
echo runtime($t1).'<br>';
$t1 = microtime(true);
for($i=0;$i<10000;$i++){
microtime(true);
}
echo "microtime_true=====";
echo runtime($t1).'<br>';
$t1 = microtime(true);
for($i=0;$i<10000;$i++){
microtime_float2();
}
echo "microtime_float2=====";
echo runtime($t1).'<br>';
$t1 = microtime(true);
for($i=0;$i<10000;$i++){
microtime_float3();
}
echo "microtime_float3=====";
echo runtime($t1).'<br>';
?>
本機(jī)winxp運(yùn)行結(jié)果:
microtime_float=====109.5631ms
microtime_true=====38.8160ms
microtime_float2=====52.7902ms
microtime_float3=====45.0699ms
Linux上運(yùn)行結(jié)果:
microtime_float=====47.2510ms
microtime_true=====9.2051ms
microtime_float2=====16.3319ms
microtime_float3=====12.2800ms
在PHP5的環(huán)境下,直接使用microtime(true);顯然是最快的。microtime_float2和microtime_float3都可以在不改變原有程序的情況下,直接修改函數(shù)內(nèi)容來實(shí)現(xiàn)性能的輕微提升。microtime_float2可以做為兼容舊版本的寫法。
復(fù)制代碼 代碼如下:
function microtime_float(){
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
看到別人的源碼中用microtime(true),查了下手冊,原來從PHP 5.0.0 開始,microtime增加了這個(gè)參數(shù)。
引用
復(fù)制代碼 代碼如下:
mixed microtime ( [bool get_as_float] )
microtime() 當(dāng)前 Unix 時(shí)間戳以及微秒數(shù)。本函數(shù)僅在支持 gettimeofday() 系統(tǒng)調(diào)用的操作系統(tǒng)下可用。
如果調(diào)用時(shí)不帶可選參數(shù),本函數(shù)以 "msec sec" 的格式返回一個(gè)字符串,其中 sec 是自 Unix 紀(jì)元(0:00:00 January 1, 1970 GMT)起到現(xiàn)在的秒數(shù),msec 是微秒部分。字符串的兩部分都是以秒為單位返回的。
如果給出了 get_as_float 參數(shù)并且其值等價(jià)于 TRUE,microtime() 將返回一個(gè)浮點(diǎn)數(shù)。
注意: get_as_float 參數(shù)是 PHP 5.0.0 新加的。
如果程序肯定在PHP5以上的環(huán)境運(yùn)行,那么就直接使用microtime(true)吧,比使用microtime_float函數(shù)至少快兩倍。以下是我簡單測試的程序代碼。
復(fù)制代碼 代碼如下:
<?php
function microtime_float3(){
return microtime(true);
}
function microtime_float2(){
if( PHP_VERSION > 5){
return microtime(true);
}else{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
}
function microtime_float(){
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
function runtime($t1){
return number_format((microtime_float() - $t1)*1000, 4).'ms';
}
$t1 = microtime_float();
for($i=0;$i<10000;$i++){
microtime_float();
}
echo "microtime_float=====";
echo runtime($t1).'<br>';
$t1 = microtime(true);
for($i=0;$i<10000;$i++){
microtime(true);
}
echo "microtime_true=====";
echo runtime($t1).'<br>';
$t1 = microtime(true);
for($i=0;$i<10000;$i++){
microtime_float2();
}
echo "microtime_float2=====";
echo runtime($t1).'<br>';
$t1 = microtime(true);
for($i=0;$i<10000;$i++){
microtime_float3();
}
echo "microtime_float3=====";
echo runtime($t1).'<br>';
?>
本機(jī)winxp運(yùn)行結(jié)果:
microtime_float=====109.5631ms
microtime_true=====38.8160ms
microtime_float2=====52.7902ms
microtime_float3=====45.0699ms
Linux上運(yùn)行結(jié)果:
microtime_float=====47.2510ms
microtime_true=====9.2051ms
microtime_float2=====16.3319ms
microtime_float3=====12.2800ms
在PHP5的環(huán)境下,直接使用microtime(true);顯然是最快的。microtime_float2和microtime_float3都可以在不改變原有程序的情況下,直接修改函數(shù)內(nèi)容來實(shí)現(xiàn)性能的輕微提升。microtime_float2可以做為兼容舊版本的寫法。
您可能感興趣的文章:
- php生成毫秒時(shí)間戳的實(shí)例講解
- 時(shí)間戳與時(shí)間相互轉(zhuǎn)換(php .net精確到毫秒)
- PHP獲取毫秒級時(shí)間戳的方法
- php獲取當(dāng)前時(shí)間的毫秒數(shù)的方法
- php日期轉(zhuǎn)時(shí)間戳,指定日期轉(zhuǎn)換成時(shí)間戳
- PHP時(shí)間戳 strtotime()使用方法和技巧
- php 計(jì)算兩個(gè)時(shí)間戳相隔的時(shí)間的函數(shù)(小時(shí))
- PHP時(shí)間戳使用實(shí)例代碼
- PHP實(shí)現(xiàn)獲取毫秒時(shí)間戳的方法【使用microtime()函數(shù)】
相關(guān)文章
PHP cookie與session會話基本用法實(shí)例分析
這篇文章主要介紹了PHP cookie與session會話基本用法,結(jié)合實(shí)例形式分析了PHP cookie與session會話基本存儲、設(shè)置、刪除等相關(guān)使用方式,需要的朋友可以參考下2019-11-11PHP Yii2框架的關(guān)聯(lián)模型使用介紹
本文對 YII2.0的多表關(guān)聯(lián)查詢做一個(gè)簡單的介紹。文中通過實(shí)例代碼介紹的非常詳細(xì),下面話不多說,來一起看看詳細(xì)的介紹2022-09-09WordPress中用于創(chuàng)建以及獲取側(cè)邊欄的PHP函數(shù)講解
這篇文章主要介紹了WordPress中用于創(chuàng)建以及獲取側(cè)邊欄的PHP函數(shù)講解,分別為register_sidebar()函數(shù)和get_sidebar()的使用,需要的朋友可以參考下2015-12-12CI框架中site_url()和base_url()的區(qū)別
這篇文章主要介紹了CI框架中site_url()和base_url()的區(qū)別,需要的朋友可以參考下2015-01-01