3v4l.org

run code in 300+ PHP versions simultaneously
<?php class NonLeakingClass { } #echo "Test empty object memory leakage" . PHP_EOL; // WARNING: Uncomment this line and PHP stops to leak memory on object creation, strange :) for ($h = 0; $h < 5; $h++) { var_dump(memory_get_usage(false)); $a = new NonLeakingClass(); unset($a); gc_collect_cycles(); var_dump(memory_get_usage(false)); } echo PHP_EOL . "Test a array data storage for memory leakage" . PHP_EOL; var_dump(memory_get_usage(false)); $a = ["memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak"]; unset($a); gc_collect_cycles(); var_dump(memory_get_usage(false)); echo PHP_EOL . "Test a string data storage for memory leakage" . PHP_EOL; var_dump(memory_get_usage(false)); $a = "memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak memory leak"; unset($a); gc_collect_cycles(); var_dump(memory_get_usage(false)); exit;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 21
Branch analysis from position: 21
2 jumps found. (Code = 44) Position 1 = 23, Position 2 = 2
Branch analysis from position: 23
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 2
2 jumps found. (Code = 44) Position 1 = 23, Position 2 = 2
Branch analysis from position: 23
Branch analysis from position: 2
filename:       /in/T5qsG
function name:  (null)
number of ops:  59
compiled vars:  !0 = $h, !1 = $a
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    8     0  E >   ASSIGN                                                   !0, 0
          1      > JMP                                                      ->21
    9     2    >   INIT_FCALL                                               'var_dump'
          3        INIT_FCALL                                               'memory_get_usage'
          4        SEND_VAL                                                 <false>
          5        DO_ICALL                                         $3      
          6        SEND_VAR                                                 $3
          7        DO_ICALL                                                 
   10     8        NEW                                              $5      'NonLeakingClass'
          9        DO_FCALL                                      0          
         10        ASSIGN                                                   !1, $5
   11    11        UNSET_CV                                                 !1
   12    12        INIT_FCALL                                               'gc_collect_cycles'
         13        DO_ICALL                                                 
   13    14        INIT_FCALL                                               'var_dump'
         15        INIT_FCALL                                               'memory_get_usage'
         16        SEND_VAL                                                 <false>
         17        DO_ICALL                                         $9      
         18        SEND_VAR                                                 $9
         19        DO_ICALL                                                 
    8    20        PRE_INC                                                  !0
         21    >   IS_SMALLER                                               !0, 5
         22      > JMPNZ                                                    ~12, ->2
   17    23    >   ECHO                                                     '%0ATest+a+array+data+storage+for+memory+leakage%0A'
   18    24        INIT_FCALL                                               'var_dump'
         25        INIT_FCALL                                               'memory_get_usage'
         26        SEND_VAL                                                 <false>
         27        DO_ICALL                                         $13     
         28        SEND_VAR                                                 $13
         29        DO_ICALL                                                 
   19    30        ASSIGN                                                   !1, <array>
   20    31        UNSET_CV                                                 !1
   21    32        INIT_FCALL                                               'gc_collect_cycles'
         33        DO_ICALL                                                 
   22    34        INIT_FCALL                                               'var_dump'
         35        INIT_FCALL                                               'memory_get_usage'
         36        SEND_VAL                                                 <false>
         37        DO_ICALL                                         $17     
         38        SEND_VAR                                                 $17
         39        DO_ICALL                                                 
   24    40        ECHO                                                     '%0ATest+a+string+data+storage+for+memory+leakage%0A'
   26    41        INIT_FCALL                                               'var_dump'
         42        INIT_FCALL                                               'memory_get_usage'
         43        SEND_VAL                                                 <false>
         44        DO_ICALL                                         $19     
         45        SEND_VAR                                                 $19
         46        DO_ICALL                                                 
   27    47        ASSIGN                                                   !1, 'memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak+memory+leak'
   28    48        UNSET_CV                                                 !1
   29    49        INIT_FCALL                                               'gc_collect_cycles'
         50        DO_ICALL                                                 
   30    51        INIT_FCALL                                               'var_dump'
         52        INIT_FCALL                                               'memory_get_usage'
         53        SEND_VAL                                                 <false>
         54        DO_ICALL                                         $23     
         55        SEND_VAR                                                 $23
         56        DO_ICALL                                                 
   32    57      > EXIT                                                     
   33    58*     > RETURN                                                   1

Class NonLeakingClass: [no user functions]

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
149.78 ms | 1400 KiB | 19 Q