• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • hrtime()

    (PHP 7 >= 7.3.0)

    Get the system's high resolution time

    说明

    hrtime([bool $get_as_number=FALSE]): mixed

    Returns the system's high resolution time, counted from an arbitrary point in time. The delivered timestamp is monotonic and can not be adjusted.

    参数

    $get_as_number

    Whether the high resolution time should be returned asarrayor number.

    返回值

    Returns an array of integers in the form [seconds, nanoseconds], if the parameter$get_as_numberis false. Otherwise the nanoseconds are returned asinteger(64bit platforms)orfloat(32bit platforms).

    范例

    Example #1hrtime()usage

    <?php
    echo hrtime(true), PHP_EOL;
    print_r(hrtime());
    ?>
    

    以上例程的输出类似于:

    10444739687370679
    Array
    (
        [0] => 10444739
        [1] => 687464812
    )
    

    参见

    • TheHigh resolution timingextension
    This function is particularly necessary on VMs running on KVM, XEN (openstack, AWS EC2, etc) when timing execution times. 
    On these platforms which lack vDSO the common method of using time() or microtime() can dramatically increase CPU/execution time due to the context switching from userland to kernel when running the `gettimeofday()` system call.
    The common pattern is:
    <?php
    $time = -microtime(true);
    sleep(5);
    $end = sprintf('%f', $time += microtime(true));
    ?>
    Substituted as:
    <?php
    $start=hrtime(true); 
    sleep(5); 
    $end=hrtime(true);
    $eta=$end-$start;
    echo $eta/1e+6; //nanoseconds to milliseconds
    //5000.362419
    //OR simply
    $eta=-hrtime(true);
    sleep(5);
    $eta+=hrtime(true);
    echo $eta/1e+6; //nanoseconds to milliseconds
    //5000.088229
    ?>
    There is also the new StopWatch class http://php.net/manual/en/class.hrtime-stopwatch.php