Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 42) Position 1 = 19 Branch analysis from position: 19 2 jumps found. (Code = 44) Position 1 = 21, Position 2 = 4 Branch analysis from position: 21 2 jumps found. (Code = 77) Position 1 = 26, Position 2 = 69 Branch analysis from position: 26 2 jumps found. (Code = 78) Position 1 = 27, Position 2 = 69 Branch analysis from position: 27 2 jumps found. (Code = 77) Position 1 = 53, Position 2 = 67 Branch analysis from position: 53 2 jumps found. (Code = 78) Position 1 = 54, Position 2 = 67 Branch analysis from position: 54 1 jumps found. (Code = 42) Position 1 = 53 Branch analysis from position: 53 Branch analysis from position: 67 1 jumps found. (Code = 42) Position 1 = 26 Branch analysis from position: 26 Branch analysis from position: 67 Branch analysis from position: 69 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 69 Branch analysis from position: 4 2 jumps found. (Code = 44) Position 1 = 21, Position 2 = 4 Branch analysis from position: 21 Branch analysis from position: 4 filename: /in/PLjcH function name: (null) number of ops: 71 compiled vars: !0 = $items, !1 = $results, !2 = $i, !3 = $num_trials, !4 = $algo, !5 = $start, !6 = $end, !7 = $count, !8 = $item line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 162 0 E > ASSIGN !0, <array> 164 1 ASSIGN !1, <array> 165 2 ASSIGN !2, 0 3 > JMP ->19 166 4 > NOP 5 FAST_CONCAT ~12 'item', !2 167 6 NOP 7 FAST_CONCAT ~14 'item', !2 8 INIT_ARRAY ~15 ~14, 'name' 168 9 INIT_FCALL 'random_int' 10 SEND_VAL 1 11 SEND_VAL 100000 12 DO_ICALL $16 13 ADD_ARRAY_ELEMENT ~15 $16, 'weight' 166 14 ASSIGN_DIM !0, ~12 168 15 OP_DATA ~15 170 16 ASSIGN_DIM !1, !2 17 OP_DATA 0 165 18 PRE_INC !2 19 > IS_SMALLER !2, 10 20 > JMPNZ ~19, ->4 173 21 > INIT_FCALL 'shuffle' 22 SEND_REF !0 23 DO_ICALL 175 24 ASSIGN !3, 100000 176 25 > FE_RESET_R $22 <array>, ->69 26 > > FE_FETCH_R $22, !4, ->69 178 27 > INIT_FCALL 'microtime' 28 SEND_VAL <true> 29 DO_ICALL $23 30 ASSIGN !5, $23 179 31 INIT_FCALL_BY_NAME 'any_item_some_weighted_random_pick' 32 SEND_VAR_EX !0 33 SEND_VAR_EX !3 34 DECLARE_LAMBDA_FUNCTION ~25 [0] 35 SEND_VAL_EX ~25 36 SEND_VAR_EX !4 37 DO_FCALL 0 $26 38 ASSIGN !1, $26 180 39 INIT_FCALL 'microtime' 40 SEND_VAL <true> 41 DO_ICALL $28 42 ASSIGN !6, $28 183 43 COALESCE ~30 !4 44 ASSIGN ~31 !4, 'auto_algo_select' 45 QM_ASSIGN ~30 ~31 46 FREE ~30 184 47 CONCAT ~32 !4, '+Time%3A+' 48 SUB ~33 !6, !5 49 CONCAT ~34 ~32, ~33 50 CONCAT ~35 ~34, '%0A' 51 ECHO ~35 186 52 > FE_RESET_R $36 !1, ->67 53 > > FE_FETCH_R ~37 $36, !7, ->67 54 > ASSIGN !8, ~37 187 55 ROPE_INIT 5 ~42 'key%3A%09' 56 ROPE_ADD 1 ~42 ~42, !8 57 ROPE_ADD 2 ~42 ~42, '%09weight%3A%09' 58 FETCH_DIM_R ~39 !0, !8 59 FETCH_DIM_R ~40 ~39, 'weight' 60 ROPE_ADD 3 ~42 ~42, ~40 61 ROPE_END 4 ~41 ~42, '%09rate%3A%09' 62 DIV ~45 !7, !3 63 CONCAT ~46 ~41, ~45 64 CONCAT ~47 ~46, '%0A' 65 ECHO ~47 186 66 > JMP ->53 67 > FE_FREE $36 176 68 > JMP ->26 69 > FE_FREE $22 204 70 > RETURN 1 Dynamic Functions: Dynamic Function 0 Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 62) Position 1 = -2 filename: /in/PLjcH function name: {closure} number of ops: 4 compiled vars: !0 = $item line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 179 0 E > RECV !0 1 FETCH_DIM_R ~1 !0, 'weight' 2 > RETURN ~1 3* > RETURN null End of Dynamic Function 0 Function prepare_cumulative_weights: Finding entry points Branch analysis from position: 0 2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 10 Branch analysis from position: 4 2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 10 Branch analysis from position: 5 1 jumps found. (Code = 42) Position 1 = 4 Branch analysis from position: 4 Branch analysis from position: 10 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 10 filename: /in/PLjcH function name: prepare_cumulative_weights number of ops: 17 compiled vars: !0 = $items, !1 = $cumulative_weights, !2 = $total, !3 = $weight, !4 = $item line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 9 0 E > RECV !0 12 1 ASSIGN !1, <array> 15 2 ASSIGN !2, 0 18 3 > FE_RESET_R $7 !0, ->10 4 > > FE_FETCH_R ~8 $7, !3, ->10 5 > ASSIGN !4, ~8 19 6 ASSIGN_OP 1 !2, !3 20 7 ASSIGN_DIM !1, !4 8 OP_DATA !2 18 9 > JMP ->4 10 > FE_FREE $7 24 11 INIT_ARRAY ~12 !1 12 ADD_ARRAY_ELEMENT ~12 !2 13 VERIFY_RETURN_TYPE ~12 14 > RETURN ~12 25 15* VERIFY_RETURN_TYPE 16* > RETURN null End of function prepare_cumulative_weights Function weighted_random_pick: Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 62) Position 1 = -2 filename: /in/PLjcH function name: weighted_random_pick number of ops: 18 compiled vars: !0 = $cumulative_weights, !1 = $total, !2 = $algo, !3 = $num line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 35 0 E > RECV !0 1 RECV !1 2 RECV_INIT !2 'binary_search' 38 3 INIT_FCALL 'mt_rand' 4 DO_ICALL $4 5 INIT_FCALL 'mt_getrandmax' 6 DO_ICALL $5 7 DIV ~6 $4, $5 8 MUL ~7 !1, ~6 9 ASSIGN !3, ~7 41 10 INIT_DYNAMIC_CALL !2 11 SEND_VAR_EX !0 12 SEND_VAR_EX !3 13 DO_FCALL 0 $9 14 VERIFY_RETURN_TYPE $9 15 > RETURN $9 42 16* VERIFY_RETURN_TYPE 17* > RETURN null End of function weighted_random_pick Function binary_search: Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 42) Position 1 = 47 Branch analysis from position: 47 2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 26 Branch analysis from position: 49 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 26 2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 38 Branch analysis from position: 36 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 38 2 jumps found. (Code = 43) Position 1 = 42, Position 2 = 45 Branch analysis from position: 42 1 jumps found. (Code = 42) Position 1 = 47 Branch analysis from position: 47 Branch analysis from position: 45 2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 26 Branch analysis from position: 49 Branch analysis from position: 26 filename: /in/PLjcH function name: binary_search number of ops: 55 compiled vars: !0 = $array, !1 = $value, !2 = $left, !3 = $right, !4 = $middle line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 63 0 E > RECV !0 1 RECV !1 65 2 FETCH_STATIC_PROP_IS ~5 'arrayValues', 'WeightRandomCacheStorage' 3 COALESCE ~6 ~5 4 INIT_FCALL 'array_values' 5 SEND_VAR !0 6 DO_ICALL $7 7 ASSIGN_STATIC_PROP ~8 'arrayValues', 'WeightRandomCacheStorage' 8 OP_DATA $7 9 QM_ASSIGN ~6 ~8 10 FREE ~6 66 11 FETCH_STATIC_PROP_IS ~9 'arrayKeys', 'WeightRandomCacheStorage' 12 COALESCE ~10 ~9 13 INIT_FCALL 'array_keys' 14 SEND_VAR !0 15 DO_ICALL $11 16 ASSIGN_STATIC_PROP ~12 'arrayKeys', 'WeightRandomCacheStorage' 17 OP_DATA $11 18 QM_ASSIGN ~10 ~12 19 FREE ~10 67 20 ASSIGN !2, 0 68 21 FETCH_STATIC_PROP_R unknown ~14 'arrayValues' 22 COUNT ~15 ~14 23 SUB ~16 ~15, 1 24 ASSIGN !3, ~16 71 25 > JMP ->47 72 26 > INIT_FCALL 'floor' 27 ADD ~18 !2, !3 28 DIV ~19 ~18, 2 29 SEND_VAL ~19 30 DO_ICALL $20 31 ASSIGN !4, $20 74 32 FETCH_STATIC_PROP_R unknown ~22 'arrayValues' 33 FETCH_DIM_R ~23 ~22, !4 34 IS_EQUAL !1, ~23 35 > JMPZ ~24, ->38 75 36 > VERIFY_RETURN_TYPE !4 37 > RETURN !4 78 38 > FETCH_STATIC_PROP_R unknown ~25 'arrayValues' 39 FETCH_DIM_R ~26 ~25, !4 40 IS_SMALLER ~26, !1 41 > JMPZ ~27, ->45 79 42 > ADD ~28 !4, 1 43 ASSIGN !2, ~28 78 44 > JMP ->47 81 45 > SUB ~30 !4, 1 46 ASSIGN !3, ~30 71 47 > IS_SMALLER_OR_EQUAL !2, !3 48 > JMPNZ ~32, ->26 86 49 > FETCH_STATIC_PROP_R unknown ~33 'arrayKeys' 50 FETCH_DIM_R ~34 ~33, !2 51 VERIFY_RETURN_TYPE ~34 52 > RETURN ~34 87 53* VERIFY_RETURN_TYPE 54* > RETURN null End of function binary_search Function linear_search: Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 42) Position 1 = 27 Branch analysis from position: 27 2 jumps found. (Code = 44) Position 1 = 30, Position 2 = 20 Branch analysis from position: 30 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 20 2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 26 Branch analysis from position: 23 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 26 2 jumps found. (Code = 44) Position 1 = 30, Position 2 = 20 Branch analysis from position: 30 Branch analysis from position: 20 filename: /in/PLjcH function name: linear_search number of ops: 35 compiled vars: !0 = $array, !1 = $value, !2 = $arrayV, !3 = $arrayK, !4 = $i line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 96 0 E > RECV !0 1 RECV !1 98 2 BIND_GLOBAL !2, 'arrayV' 3 BIND_GLOBAL !3, 'arrayK' 99 4 COALESCE ~5 !2 5 INIT_FCALL 'array_values' 6 SEND_VAR !0 7 DO_ICALL $6 8 ASSIGN ~7 !2, $6 9 QM_ASSIGN ~5 ~7 10 FREE ~5 100 11 COALESCE ~8 !3 12 INIT_FCALL 'array_keys' 13 SEND_VAR !0 14 DO_ICALL $9 15 ASSIGN ~10 !3, $9 16 QM_ASSIGN ~8 ~10 17 FREE ~8 103 18 ASSIGN !4, 0 19 > JMP ->27 104 20 > FETCH_DIM_R ~12 !2, !4 21 IS_SMALLER_OR_EQUAL !1, ~12 22 > JMPZ ~13, ->26 105 23 > FETCH_DIM_R ~14 !3, !4 24 VERIFY_RETURN_TYPE ~14 25 > RETURN ~14 103 26 > PRE_INC !4 27 > COUNT ~16 !2 28 IS_SMALLER !4, ~16 29 > JMPNZ ~17, ->20 109 30 > FETCH_DIM_R ~18 !3, !4 31 VERIFY_RETURN_TYPE ~18 32 > RETURN ~18 110 33* VERIFY_RETURN_TYPE 34* > RETURN null End of function linear_search Function some_weighted_random_pick: Finding entry points Branch analysis from position: 0 2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 13 Branch analysis from position: 6 2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 11 Branch analysis from position: 9 1 jumps found. (Code = 42) Position 1 = 12 Branch analysis from position: 12 1 jumps found. (Code = 42) Position 1 = 46 Branch analysis from position: 46 2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 37 Branch analysis from position: 48 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 37 2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 37 Branch analysis from position: 48 Branch analysis from position: 37 Branch analysis from position: 11 1 jumps found. (Code = 42) Position 1 = 46 Branch analysis from position: 46 Branch analysis from position: 13 filename: /in/PLjcH function name: some_weighted_random_pick number of ops: 54 compiled vars: !0 = $items, !1 = $count, !2 = $algo, !3 = $cumulative_weights, !4 = $total, !5 = $results, !6 = $i, !7 = $result line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 120 0 E > RECV !0 1 RECV !1 2 RECV_INIT !2 null 122 3 ISSET_ISEMPTY_CV ~8 !2 4 BOOL_NOT ~9 ~8 5 > JMPZ ~9, ->13 124 6 > COUNT ~10 !0 7 IS_SMALLER ~10, 50 8 > JMPZ ~11, ->11 9 > QM_ASSIGN ~12 'linear_search' 10 > JMP ->12 11 > QM_ASSIGN ~12 'binary_search' 12 > ASSIGN !2, ~12 127 13 > INIT_FCALL 'prepare_cumulative_weights' 14 SEND_VAR !0 15 DO_FCALL 0 $14 16 FETCH_LIST_R $15 $14, 0 17 ASSIGN !3, $15 18 FETCH_LIST_R $17 $14, 1 19 ASSIGN !4, $17 20 FREE $14 130 21 INIT_FCALL 'array_combine' 22 INIT_FCALL 'array_keys' 23 SEND_VAR !0 24 DO_ICALL $19 25 SEND_VAR $19 26 INIT_FCALL 'array_fill' 27 SEND_VAL 0 28 COUNT ~20 !0 29 SEND_VAL ~20 30 SEND_VAL 0 31 DO_ICALL $21 32 SEND_VAR $21 33 DO_ICALL $22 34 ASSIGN !5, $22 133 35 ASSIGN !6, 0 36 > JMP ->46 134 37 > INIT_FCALL 'weighted_random_pick' 38 SEND_VAR !3 39 SEND_VAR !4 40 SEND_VAR !2 41 DO_FCALL 0 $25 42 ASSIGN !7, $25 135 43 FETCH_DIM_RW $27 !5, !7 44 PRE_INC $27 133 45 PRE_INC !6 46 > IS_SMALLER !6, !1 47 > JMPNZ ~30, ->37 137 48 > INIT_STATIC_METHOD_CALL 'WeightRandomCacheStorage', 'clear' 49 DO_FCALL 0 139 50 VERIFY_RETURN_TYPE !5 51 > RETURN !5 140 52* VERIFY_RETURN_TYPE 53* > RETURN null End of function some_weighted_random_pick Function single_weighted_random_pick: Finding entry points Branch analysis from position: 0 1 jumps found. (Code = 62) Position 1 = -2 filename: /in/PLjcH function name: single_weighted_random_pick number of ops: 22 compiled vars: !0 = $items, !1 = $algo, !2 = $cumulative_weights, !3 = $total, !4 = $ret line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 149 0 E > RECV !0 1 RECV_INIT !1 'binary_search' 152 2 INIT_FCALL 'prepare_cumulative_weights' 3 SEND_VAR !0 4 DO_FCALL 0 $5 5 FETCH_LIST_R $6 $5, 0 6 ASSIGN !2, $6 7 FETCH_LIST_R $8 $5, 1 8 ASSIGN !3, $8 9 FREE $5 155 10 INIT_FCALL 'weighted_random_pick' 11 SEND_VAR !2 12 SEND_VAR !3 13 SEND_VAR !1 14 DO_FCALL 0 $10 15 ASSIGN !4, $10 156 16 INIT_STATIC_METHOD_CALL 'WeightRandomCacheStorage', 'clear' 17 DO_FCALL 0 157 18 VERIFY_RETURN_TYPE !4 19 > RETURN !4 158 20* VERIFY_RETURN_TYPE 21* > RETURN null End of function single_weighted_random_pick Function any_item_some_weighted_random_pick: Finding entry points Branch analysis from position: 0 2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 18 Branch analysis from position: 7 2 jumps found. (Code = 77) Position 1 = 8, Position 2 = 16 Branch analysis from position: 8 2 jumps found. (Code = 78) Position 1 = 9, Position 2 = 16 Branch analysis from position: 9 1 jumps found. (Code = 42) Position 1 = 8 Branch analysis from position: 8 Branch analysis from position: 16 1 jumps found. (Code = 42) Position 1 = 19 Branch analysis from position: 19 1 jumps found. (Code = 62) Position 1 = -2 Branch analysis from position: 16 Branch analysis from position: 18 1 jumps found. (Code = 62) Position 1 = -2 filename: /in/PLjcH function name: any_item_some_weighted_random_pick number of ops: 26 compiled vars: !0 = $items, !1 = $count, !2 = $weightGetter, !3 = $algo, !4 = $_items, !5 = $item, !6 = $key line #* E I O op fetch ext return operands ------------------------------------------------------------------------------------- 192 0 E > RECV !0 1 RECV !1 2 RECV_INIT !2 null 3 RECV_INIT !3 null 194 4 ASSIGN !4, <array> 195 5 ISSET_ISEMPTY_CV !2 6 > JMPZ ~8, ->18 196 7 > > FE_RESET_R $9 !0, ->16 8 > > FE_FETCH_R ~10 $9, !5, ->16 9 > ASSIGN !6, ~10 197 10 INIT_DYNAMIC_CALL !2 11 SEND_VAR_EX !5 12 DO_FCALL 0 $13 13 ASSIGN_DIM !4, !6 14 OP_DATA $13 196 15 > JMP ->8 16 > FE_FREE $9 195 17 > JMP ->19 200 18 > ASSIGN
Generated using Vulcan Logic Dumper, using php 8.0.0