Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/AMECf
function name: (null)
number of ops: 61
compiled vars: !0 = $capture, !1 = $content, !2 = $bytes, !3 = $commas, !4 = $iterations, !5 = $timeStrtok, !6 = $timeMS, !7 = $timesFaster
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
47 0 E > ASSIGN !0, <array>
104 1 INIT_FCALL 'get_content'
2 DO_FCALL 0 $9
3 ASSIGN !1, $9
105 4 STRLEN ~11 !1
5 ASSIGN !2, ~11
106 6 INIT_FCALL 'explode'
7 SEND_VAL '%2C'
8 SEND_VAR !1
9 DO_ICALL $13
10 COUNT ~14 $13
11 SUB ~15 ~14, 1
12 ASSIGN !3, ~15
108 13 ASSIGN !4, 100
110 14 INIT_FCALL 'benchmarkstrtok'
15 SEND_VAR !1
16 SEND_VAR !4
17 DO_FCALL 0 $18
18 ASSIGN !5, $18
111 19 INIT_FCALL 'benchmarkmodernstrtok'
20 SEND_VAR !1
21 SEND_VAR !4
22 DO_FCALL 0 $20
23 ASSIGN !6, $20
118 24 INIT_FCALL 'round'
25 DIV ~22 !6, !5
26 SEND_VAL ~22
27 SEND_VAL 4
28 DO_ICALL $23
29 ASSIGN !7, $23
120 30 INIT_FCALL 'round'
31 SEND_VAR !5
32 SEND_VAL 4
33 DO_ICALL $25
34 ASSIGN !5, $25
121 35 INIT_FCALL 'round'
36 SEND_VAR !6
37 SEND_VAL 4
38 DO_ICALL $27
39 ASSIGN !6, $27
123 40 ROPE_INIT 3 ~30 'Size+of+file%3A+++++++++++'
41 ROPE_ADD 1 ~30 ~30, !2
42 ROPE_END 2 ~29 ~30, '%0A'
43 ECHO ~29
124 44 ROPE_INIT 3 ~33 'Number+of+commas%3A+++++++'
45 ROPE_ADD 1 ~33 ~33, !3
46 ROPE_END 2 ~32 ~33, '%0A'
47 ECHO ~32
125 48 ROPE_INIT 3 ~36 'Time+for+strtok%3A++++++++'
49 ROPE_ADD 1 ~36 ~36, !5
50 ROPE_END 2 ~35 ~36, '+seconds%0A'
51 ECHO ~35
126 52 ROPE_INIT 3 ~39 'Time+for+ModernStrTok%3A++'
53 ROPE_ADD 1 ~39 ~39, !6
54 ROPE_END 2 ~38 ~39, '+seconds%0A'
55 ECHO ~38
127 56 ROPE_INIT 3 ~42 'strtok%28%29+time+delta%3A++++'
57 ROPE_ADD 1 ~42 ~42, !7
58 ROPE_END 2 ~41 ~42, '%0A'
59 ECHO ~41
60 > RETURN 1
Function get_content:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/AMECf
function name: get_content
number of ops: 2
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > > RETURN '%0Aperson_ID%2Cname%2Cfirst%2Clast%2Cmiddle%2Cemail%2Cphone%2Cfax%2Ctitle%0A3130%2C%22Burks%2C+Rosella+%22%2CRosella%2CBurks%2C%2CBurksR%40univ.edu%2C963.555.1253%2C963.777.4065%2CProfessor%0A3297%2C%22Avila%2C+Damien+%22%2CDamien%2CAvila%2C%2CAvilaD%40univ.edu%2C963.555.1352%2C963.777.7914%2CProfessor%0A3547%2C%22Olsen%2C+Robin+%22%2CRobin%2COlsen%2C%2COlsenR%40univ.edu%2C963.555.1378%2C963.777.9262%2CAssistant+Professor%0A1538%2C%22Moises%2C+Edgar+Estes%22%2CEdgar%2CMoises%2CEstes%2CMoisesE%40univ.edu%2C963.555.2731x3565%2C963.777.8264%2CProfessor%0A2941%2C%22Brian%2C+Heath+Pruitt%22%2CHeath%2CBrian%2CPruitt%2CBrianH%40univ.edu%2C963.555.2800%2C963.777.7249%2CAssociate+Curator%0A2401%2C%22Claude%2C+Elvin+Haney%22%2CElvin%2CClaude%2CHaney%2CClaudeE%40univ.edu%2C963.555.2902%2C963.777.9730%2CCurator%0A2070%2C%22Mosley%2C+Edmund+%22%2CEdmund%2CMosley%2C%2CMosleyE%40univ.edu%2C963.555.2945%2C963.777.9285%2CAssistant+Professor%0A2561%2C%22Derek%2C+Antoine+Mccoy%22%2CAntoine%2CDerek%2CMccoy%2CDerekA%40univ.edu%2C963.555.2992%2C963.777.5454%2CCurator%0A1625%2C%22Hawkins%2C+Callie+%22%2CCallie%2CHawkins%2C%2CHawkinsC%40univ.edu%2C963.555.3350x6480%2C963.777.4949%2CProfessor%0A1307%2C%22Pate%2C+Andrea+%22%2CAndrea%2CPate%2C%2CPateA%40univ.edu%2C963.555.3723%2C963.777.5049%2CProfessor%0A2342%2C%22Austin%2C+Liz+%22%2CLiz%2CAustin%2C%2CAustinL%40univ.edu%2C963.555.4305%2C963.777.6143%2CAssistant+Professor%0A2755%2C%22Kendrick%2C+Reba+Alford%22%2CReba%2CKendrick%2CAlford%2CKendrickR%40univ.edu%2C963.555.4618x7744%2C963.777.4371%2CAssociate+Curator%0A4150%2C%22Sims%2C+Angelina+%22%2CAngelina%2CSims%2C%2CSimsA%40univ.edu%2C963.555.5278%2C963.777.4400%2CProfessor%0A3544%2C%22Mullins%2C+Kimberly+%22%2CKimberly%2CMullins%2C%2CMullinsK%40univ.edu%2C963.555.5471x1017%2C963.777.9783%2CAssistant+Professor%0A2096%2C%22Chuck%2C+Lloyd+Haney%22%2CLloyd%2CChuck%2CHaney%2CChuckL%40univ.edu%2C963.555.5568x2652%2C963.777.9290%2CAssistant+Professor%0A1089%2C%22Payne%2C+Ladonna+%22%2CLadonna%2CPayne%2C%2CPayneL%40univ.edu%2C963.555.5639%2C963.777.6469%2CProfessor%0A2948%2C%22Baxter%2C+Johnathan+Browning%22%2CJohnathan%2CBaxter%2CBrowning%2CBaxterJ%40univ.edu%2C963.555.5902%2C963.777.8336%2CResearch+Professor%0A4539%2C%22Weiss%2C+Gilbert+%22%2CGilbert%2CWeiss%2C%2CWeissG%40univ.edu%2C963.555.5969%2C963.777.4975%2CProfessor%0A2811%2C%22Deirdre%2C+Florence+Barrera%22%2CFlorence%2CDeirdre%2CBarrera%2CDeirdreF%40univ.edu%2C963.555.6319%2C963.777.9654%2CAssociate+Curator%0A4580%2C%22Fernando%2C+Toby+Calderon%22%2CToby%2CFernando%2CCalderon%2CFernandoT%40univ.edu%2C963.555.6469%2C963.777.9864%2CResearch+Professor%0A2895%2C%22Garrison%2C+Patrica+%22%2CPatrica%2CGarrison%2C%2CGarrisonP%40univ.edu%2C963.555.6760%2C963.777.4958%2CAssociate+Curator%0A2254%2C%22Effie%2C+Leila+Vinson%22%2CLeila%2CEffie%2CVinson%2CEffieL%40univ.edu%2C963.555.6824%2C963.777.7299%2CAssistant+Professor%0A2389%2C%22Buckley%2C+Rose+%22%2CRose%2CBuckley%2C%2CBuckleyR%40univ.edu%2C963.555.6855x5018%2C963.777.5233%2CCurator%0A1699%2C%22Stanton%2C+Kathie+%22%2CKathie%2CStanton%2C%2CStantonK%40univ.edu%2C963.555.7095%2C963.777.1015%2CProfessor%0A1567%2C%22Banks%2C+Shannon+%22%2CShannon%2CBanks%2C%2CBanksS%40univ.edu%2C963.555.7198%2C963.777.6979%2CProfessor%0A3066%2C%22Barnes%2C+Cleo+%22%2CCleo%2CBarnes%2C%2CBarnesC%40univ.edu%2C963.555.7463x7335%2C963.777.1583%2CResearch+Professor%0A2426%2C%22Brady%2C+Nellie+%22%2CNellie%2CBrady%2C%2CBradyN%40univ.edu%2C963.555.7569%2C963.777.7218%2CCurator%0A2217%2C%22Katheryn%2C+Ruben+Holt%22%2CRuben%2CKatheryn%2CHolt%2CKatherynR%40univ.edu%2C963.555.7578%2C963.777.3969%2CAssistant+Professor%0A1968%2C%22Michael%2C+Dianne+%22%2CDianne%2CMichael%2C%2CMichaelD%40univ.edu%2C963.555.7592%2C963.777.9960%2CAssistant+Professor%0A3012%2C%22Grant%2C+Adam+%22%2CAdam%2CGrant%2C%2CGrantA%40univ.edu%2C963.555.7775%2C963.777.8115%2CResearch+Professor%0A1824%2C%22Head%2C+Kurtis+%22%2CKurtis%2CHead%2C%2CHeadK%40univ.edu%2C963.555.7882%2C963.777.6348%2CProfessor%0A3929%2C%22Berger%2C+Jami+%22%2CJami%2CBerger%2C%2CBergerJ%40univ.edu%2C963.555.8158%2C963.777.5650%2CResearch+Professor%0A2682%2C%22Earline%2C+Jaime+Fitzgerald%22%2CJaime%2CEarline%2CFitzgerald%2CEarlineJ%40univ.edu%2C963.555.8357%2C963.777.4114%2CAssociate+Curator%0A3112%2C%22Evelyn%2C+Summer+Frost%22%2CSummer%2CEvelyn%2CFrost%2CEvelynS%40univ.edu%2C963.555.8895%2C963.777.5730%2CProfessor%0A2303%2C%22Quentin%2C+Sam+Hyde%22%2CSam%2CQuentin%2CHyde%2CQuentinS%40univ.edu%2C963.555.8921%2C963.777.2712%2CAssistant+Professor%0A3903%2C%22Dunlap%2C+Ann+%22%2CAnn%2CDunlap%2C%2CDunlapA%40univ.edu%2C963.555.9067%2C963.777.4290%2CAssistant+Professor%0A3095%2C%22Shields%2C+Rich+Pena%22%2CRich%2CShields%2CPena%2CShieldsR%40univ.edu%2C963.555.9197%2C963.777.7215%2CProfessor%0A2383%2C%22Page%2C+Winnie+%22%2CWinnie%2CPage%2C%2CPageW%40univ.edu%2C963.555.9366%2C963.777.3202%2CCurator%0A2146%2C%22Sparks%2C+Ezra+%22%2CEzra%2CSparks%2C%2CSparksE%40univ.edu%2C963.555.9390%2C963.777.9273%2CAssistant+Professor%0A'
45 1* > RETURN null
End of function get_content
Function captures_differ:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 35
Branch analysis from position: 35
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 13
Branch analysis from position: 37
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 20
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 13
Branch analysis from position: 37
Branch analysis from position: 13
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 13
Branch analysis from position: 37
Branch analysis from position: 13
filename: /in/AMECf
function name: captures_differ
number of ops: 41
compiled vars: !0 = $capture, !1 = $diff, !2 = $n, !3 = $i
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
52 0 E > BIND_GLOBAL !0, 'capture'
53 1 ASSIGN !1, <false>
54 2 INIT_FCALL 'min'
3 FETCH_DIM_R ~5 !0, 1
4 COUNT ~6 ~5
5 SEND_VAL ~6
6 FETCH_DIM_R ~7 !0, 2
7 COUNT ~8 ~7
8 SEND_VAL ~8
9 DO_ICALL $9
10 ASSIGN !2, $9
55 11 ASSIGN !3, 0
12 > JMP ->35
56 13 > FETCH_DIM_R ~12 !0, 1
14 FETCH_DIM_R ~13 ~12, !3
15 FETCH_DIM_R ~14 !0, 2
16 FETCH_DIM_R ~15 ~14, !3
17 IS_IDENTICAL ~13, ~15
18 > JMPZ ~16, ->20
57 19 > > JMP ->34
59 20 > ECHO '%3D%3D%3D%3D%3D%3D%3E%0A'
60 21 ECHO !3
22 ECHO '%3A+%27'
23 FETCH_DIM_R ~17 !0, 1
24 FETCH_DIM_R ~18 ~17, !3
25 ECHO ~18
26 ECHO '%27+%21%3D%3D+%27'
27 FETCH_DIM_R ~19 !0, 2
28 FETCH_DIM_R ~20 ~19, !3
29 ECHO ~20
30 ECHO '%27%0A'
61 31 ECHO '%3C%3D%3D%3D%3D%3D%3D%0A'
62 32 ECHO '%0A'
63 33 ASSIGN !1, <true>
55 34 > PRE_INC !3
35 > IS_SMALLER !3, !2
36 > JMPNZ ~23, ->13
65 37 > VERIFY_RETURN_TYPE !1
38 > RETURN !1
66 39* VERIFY_RETURN_TYPE
40* > RETURN null
End of function captures_differ
Function benchmarkstrtok:
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 = 8
Branch analysis from position: 23
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
2 jumps found. (Code = 44) Position 1 = 20, Position 2 = 14
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 23, Position 2 = 8
Branch analysis from position: 23
Branch analysis from position: 8
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 20, Position 2 = 14
Branch analysis from position: 20
Branch analysis from position: 14
filename: /in/AMECf
function name: benchmarkStrtok
number of ops: 30
compiled vars: !0 = $content, !1 = $iterations, !2 = $start, !3 = $i, !4 = $token, !5 = $end
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
68 0 E > RECV !0
1 RECV !1
70 2 INIT_FCALL 'microtime'
3 SEND_VAL <true>
4 DO_ICALL $6
5 ASSIGN !2, $6
71 6 ASSIGN !3, 0
7 > JMP ->21
72 8 > INIT_FCALL 'strtok'
9 SEND_VAR !0
10 SEND_VAL '%2C'
11 DO_ICALL $9
12 ASSIGN !4, $9
73 13 > JMP ->18
75 14 > INIT_FCALL 'strtok'
15 SEND_VAL '%2C'
16 DO_ICALL $11
17 ASSIGN !4, $11
73 18 > TYPE_CHECK 1018 !4
19 > JMPNZ ~13, ->14
71 20 > PRE_INC !3
21 > IS_SMALLER !3, !1
22 > JMPNZ ~15, ->8
78 23 > INIT_FCALL 'microtime'
24 SEND_VAL <true>
25 DO_ICALL $16
26 ASSIGN !5, $16
79 27 SUB ~18 !5, !2
28 > RETURN ~18
80 29* > RETURN null
End of function benchmarkstrtok
Function benchmarkmodernstrtok:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
2 jumps found. (Code = 44) Position 1 = 38, Position 2 = 10
Branch analysis from position: 38
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 35, Position 2 = 12
Branch analysis from position: 35
2 jumps found. (Code = 44) Position 1 = 38, Position 2 = 10
Branch analysis from position: 38
Branch analysis from position: 10
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 33
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 35
Branch analysis from position: 35
Branch analysis from position: 33
2 jumps found. (Code = 44) Position 1 = 35, Position 2 = 12
Branch analysis from position: 35
Branch analysis from position: 12
filename: /in/AMECf
function name: benchmarkModernStrtok
number of ops: 45
compiled vars: !0 = $content, !1 = $iterations, !2 = $start, !3 = $content_len, !4 = $i, !5 = $pos, !6 = $len, !7 = $token, !8 = $end
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
83 0 E > RECV !0
1 RECV !1
85 2 INIT_FCALL 'microtime'
3 SEND_VAL <true>
4 DO_ICALL $9
5 ASSIGN !2, $9
86 6 STRLEN ~11 !0
7 ASSIGN !3, ~11
87 8 ASSIGN !4, 0
9 > JMP ->36
88 10 > ASSIGN !5, 0
89 11 > JMP ->34
90 12 > INIT_FCALL 'strspn'
13 SEND_VAR !0
14 SEND_VAL '%2C'
15 SEND_VAR !5
16 DO_ICALL $15
17 ASSIGN_OP 1 !5, $15
91 18 INIT_FCALL 'strcspn'
19 SEND_VAR !0
20 SEND_VAL '%2C'
21 SEND_VAR !5
22 DO_ICALL $17
23 ASSIGN !6, $17
92 24 INIT_FCALL 'substr'
25 SEND_VAR !0
26 SEND_VAR !5
27 SEND_VAR !6
28 DO_ICALL $19
29 ASSIGN !7, $19
93 30 IS_SMALLER_OR_EQUAL !3, !5
31 > JMPZ ~21, ->33
94 32 > > JMP ->35
96 33 > ASSIGN_OP 1 !5, !6
89 34 > > JMPNZ <true>, ->12
87 35 > PRE_INC !4
36 > IS_SMALLER !4, !1
37 > JMPNZ ~24, ->10
100 38 > INIT_FCALL 'microtime'
39 SEND_VAL <true>
40 DO_ICALL $25
41 ASSIGN !8, $25
101 42 SUB ~27 !8, !2
43 > RETURN ~27
102 44* > RETURN null
End of function benchmarkmodernstrtok
Generated using Vulcan Logic Dumper, using php 8.0.0