3v4l.org

run code in 300+ PHP versions simultaneously
<?php function onRequestStart() { $dat = getrusage(); define('PHP_TUSAGE', microtime(true)); define('PHP_RUSAGE', $dat["ru_utime.tv_sec"]*1e6+$dat["ru_utime.tv_usec"]); } function getCpuUsage() { $dat = getrusage(); $dat["ru_utime.tv_usec"] = ($dat["ru_utime.tv_sec"]*1e6 + $dat["ru_utime.tv_usec"]) - PHP_RUSAGE; $time = (microtime(true) - PHP_TUSAGE) * 1000000; // cpu per request if($time > 0) { $cpu = sprintf("%01.2f", ($dat["ru_utime.tv_usec"] / $time) * 100); } else { $cpu = '0.00'; } return $cpu; } onRequestStart(); for($i = 0; $i < 9999999; $i++){} echo getCpuUsage();
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
2 jumps found. (Code = 44) Position 1 = 7, Position 2 = 4
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
2 jumps found. (Code = 44) Position 1 = 7, Position 2 = 4
Branch analysis from position: 7
Branch analysis from position: 4
filename:       /in/SQIbC
function name:  (null)
number of ops:  11
compiled vars:  !0 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   24     0  E >   INIT_FCALL                                               'onrequeststart'
          1        DO_FCALL                                      0          
   26     2        ASSIGN                                                   !0, 0
          3      > JMP                                                      ->5
          4    >   PRE_INC                                                  !0
          5    >   IS_SMALLER                                               !0, 9999999
          6      > JMPNZ                                                    ~4, ->4
   28     7    >   INIT_FCALL                                               'getcpuusage'
          8        DO_FCALL                                      0  $5      
          9        ECHO                                                     $5
         10      > RETURN                                                   1

Function onrequeststart:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/SQIbC
function name:  onRequestStart
number of ops:  19
compiled vars:  !0 = $dat
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   INIT_FCALL                                               'getrusage'
          1        DO_ICALL                                         $1      
          2        ASSIGN                                                   !0, $1
    5     3        INIT_FCALL                                               'define'
          4        SEND_VAL                                                 'PHP_TUSAGE'
          5        INIT_FCALL                                               'microtime'
          6        SEND_VAL                                                 <true>
          7        DO_ICALL                                         $3      
          8        SEND_VAR                                                 $3
          9        DO_ICALL                                                 
    6    10        INIT_FCALL                                               'define'
         11        SEND_VAL                                                 'PHP_RUSAGE'
         12        FETCH_DIM_R                                      ~5      !0, 'ru_utime.tv_sec'
         13        MUL                                              ~6      ~5, 1.0e+6
         14        FETCH_DIM_R                                      ~7      !0, 'ru_utime.tv_usec'
         15        ADD                                              ~8      ~6, ~7
         16        SEND_VAL                                                 ~8
         17        DO_ICALL                                                 
    7    18      > RETURN                                                   null

End of function onrequeststart

Function getcpuusage:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 29
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 29
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/SQIbC
function name:  getCpuUsage
number of ops:  32
compiled vars:  !0 = $dat, !1 = $time, !2 = $cpu
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   10     0  E >   INIT_FCALL                                               'getrusage'
          1        DO_ICALL                                         $3      
          2        ASSIGN                                                   !0, $3
   11     3        FETCH_DIM_R                                      ~6      !0, 'ru_utime.tv_sec'
          4        MUL                                              ~7      ~6, 1.0e+6
          5        FETCH_DIM_R                                      ~8      !0, 'ru_utime.tv_usec'
          6        ADD                                              ~9      ~7, ~8
          7        FETCH_CONSTANT                                   ~10     'PHP_RUSAGE'
          8        SUB                                              ~11     ~9, ~10
          9        ASSIGN_DIM                                               !0, 'ru_utime.tv_usec'
         10        OP_DATA                                                  ~11
   12    11        INIT_FCALL                                               'microtime'
         12        SEND_VAL                                                 <true>
         13        DO_ICALL                                         $12     
         14        FETCH_CONSTANT                                   ~13     'PHP_TUSAGE'
         15        SUB                                              ~14     $12, ~13
         16        MUL                                              ~15     ~14, 1000000
         17        ASSIGN                                                   !1, ~15
   15    18        IS_SMALLER                                               0, !1
         19      > JMPZ                                                     ~17, ->29
   16    20    >   INIT_FCALL                                               'sprintf'
         21        SEND_VAL                                                 '%2501.2f'
         22        FETCH_DIM_R                                      ~18     !0, 'ru_utime.tv_usec'
         23        DIV                                              ~19     ~18, !1
         24        MUL                                              ~20     ~19, 100
         25        SEND_VAL                                                 ~20
         26        DO_ICALL                                         $21     
         27        ASSIGN                                                   !2, $21
         28      > JMP                                                      ->30
   18    29    >   ASSIGN                                                   !2, '0.00'
   21    30    > > RETURN                                                   !2
   22    31*     > RETURN                                                   null

End of function getcpuusage

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
151.74 ms | 1403 KiB | 23 Q