3v4l.org

run code in 300+ PHP versions simultaneously
<?php $time1 = microtime(true); for ($i=0; $i<10000; $i++) { $pathName = '/home/local/core/theme/foo//var/foo///bar//foobar/dakfjdsd.dfdjk'; $pathName = preg_replace('/\/+/', '/', $pathName); } $time2 = microtime(true); for ($i=0; $i<10000; $i++) { $pathName = '/home/local/core/theme/foo//var/foo///bar//foobar/dakfjdsd.dfdjk'; $pathName = str_replace('///', '/', $pathName); $pathName = str_replace('//', '/', $pathName); } $time3 = microtime(true); var_dump(($time2-$time1)*1000, ($time3-$time2)*1000);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 14
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 6
Branch analysis from position: 16
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
2 jumps found. (Code = 44) Position 1 = 38, Position 2 = 22
Branch analysis from position: 38
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 22
2 jumps found. (Code = 44) Position 1 = 38, Position 2 = 22
Branch analysis from position: 38
Branch analysis from position: 22
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 6
Branch analysis from position: 16
Branch analysis from position: 6
filename:       /in/ZYCgW
function name:  (null)
number of ops:  51
compiled vars:  !0 = $time1, !1 = $i, !2 = $pathName, !3 = $time2, !4 = $time3
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'microtime'
          1        SEND_VAL                                                 <true>
          2        DO_ICALL                                         $5      
          3        ASSIGN                                                   !0, $5
    5     4        ASSIGN                                                   !1, 0
          5      > JMP                                                      ->14
    6     6    >   ASSIGN                                                   !2, '%2Fhome%2Flocal%2Fcore%2Ftheme%2Ffoo%2F%2Fvar%2Ffoo%2F%2F%2Fbar%2F%2Ffoobar%2Fdakfjdsd.dfdjk'
    7     7        INIT_FCALL                                               'preg_replace'
          8        SEND_VAL                                                 '%2F%5C%2F%2B%2F'
          9        SEND_VAL                                                 '%2F'
         10        SEND_VAR                                                 !2
         11        DO_ICALL                                         $9      
         12        ASSIGN                                                   !2, $9
    5    13        PRE_INC                                                  !1
         14    >   IS_SMALLER                                               !1, 10000
         15      > JMPNZ                                                    ~12, ->6
   10    16    >   INIT_FCALL                                               'microtime'
         17        SEND_VAL                                                 <true>
         18        DO_ICALL                                         $13     
         19        ASSIGN                                                   !3, $13
   12    20        ASSIGN                                                   !1, 0
         21      > JMP                                                      ->36
   13    22    >   ASSIGN                                                   !2, '%2Fhome%2Flocal%2Fcore%2Ftheme%2Ffoo%2F%2Fvar%2Ffoo%2F%2F%2Fbar%2F%2Ffoobar%2Fdakfjdsd.dfdjk'
   14    23        INIT_FCALL                                               'str_replace'
         24        SEND_VAL                                                 '%2F%2F%2F'
         25        SEND_VAL                                                 '%2F'
         26        SEND_VAR                                                 !2
         27        DO_ICALL                                         $17     
         28        ASSIGN                                                   !2, $17
   15    29        INIT_FCALL                                               'str_replace'
         30        SEND_VAL                                                 '%2F%2F'
         31        SEND_VAL                                                 '%2F'
         32        SEND_VAR                                                 !2
         33        DO_ICALL                                         $19     
         34        ASSIGN                                                   !2, $19
   12    35        PRE_INC                                                  !1
         36    >   IS_SMALLER                                               !1, 10000
         37      > JMPNZ                                                    ~22, ->22
   18    38    >   INIT_FCALL                                               'microtime'
         39        SEND_VAL                                                 <true>
         40        DO_ICALL                                         $23     
         41        ASSIGN                                                   !4, $23
   20    42        INIT_FCALL                                               'var_dump'
         43        SUB                                              ~25     !3, !0
         44        MUL                                              ~26     ~25, 1000
         45        SEND_VAL                                                 ~26
         46        SUB                                              ~27     !4, !3
         47        MUL                                              ~28     ~27, 1000
         48        SEND_VAL                                                 ~28
         49        DO_ICALL                                                 
         50      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
158.57 ms | 1400 KiB | 21 Q