3v4l.org

run code in 500+ 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 = 61) 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:  60
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      > INIT_FCALL                                                   'exit'
         58*       DO_ICALL                                                     
   33    59*     > RETURN                                                       1

Class NonLeakingClass: [no user functions]

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
175.54 ms | 1250 KiB | 17 Q