|
|
DataMuseum.dkPresents historical artifacts from the history of: RC3500 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC3500 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6912 (0x1b00)
Types: TextFileVerbose
Names: »xepasclib«
└─⟦2c55ea56f⟧ Bits:30001844 SW-save af projekt 1000, Alarm-system
└─⟦6b41451d2⟧
└─⟦this⟧ »xepasclib«
nntpasclib = edit ntpascallib
; code for time meassurements
l./b.a20,b30,d50,f10,/, r/p10/p15/,
l./d46=20;additional errorinf/, l1, i/
d47 = 24 ; double word for time stamps
/,
l./p8=8/, l1, i/
p10 = 16 ; length of procedure table entries
p12 = 12 ; double word containing processing time
p14 = 14 ; activation counter
/,
l./m68:h68/, l1, i/
m51: h51 ; mode bits
/,
l./g1: ; init:/,
l./rlw2 66/, i/
; time stamp main program !!
dl w1 110 ; current time
ss w1 x3+d47 ; - old time
rl. w2 b0. ; address( proc table )
aa w1 x2+p12 ; add delta
ds w1 x2+p12
al w0 1
rs w0 x2+p14 ; # calls := 1 !!!!
/,
l./a10: ; terminate:/,
l./;outchar(newline);/, l1, i?
rl. w0 (m51.) ; get mode bits
so w0 1<8 ; skip if mode listing
jl. a14.
b. c15 , q10 w.
; print heading
al. w0 c9. ;
jl. w3 (m31.) ; outtext( 'performance meassurement ... ')
jl. w3 q8. ; print ( '----------------------------' )
rl. w2 b0. ; get start of procedure table
; compute total run time and total number of calls
al w3 0
dl. w1 c0.
q1: aa w1 x2+p12 ; add time
wa w3 x2+p14 ; add # calls
al w2 x2+p10
se. w2 (b2.) ; until top of procedures
jl. q1.
ds. w1 c0. ; save sum
rs. w3 c1.
; print table
rl. w1 b0.
q2: rs. w1 b22. ; repeat
rl w0 x1+p8 ; start of routine error table
rs. w0 b24.
jl. w3 m1. ; get start line
rs. w0 b12.
al. w2 b16. ; get routine name
q3: jl. w3 m1.
lo. w0 b17.
rs w0 x2
al w2 x2+2
se. w2 b16.+8
jl. q3.
al. w0 b16. ; outtext(routinename)
jl. w3 (m31.)
rl. w0 b12. ; get start line
jl. w3 (m32.) ; outinteger( start line )
32<12 + 5
rl. w2 b22. ; current proc table entry
rl w0 x2+p14 ;
jl. w3 (m32.); outinteger( # calls )
32<12 + 10
rl w0 x2+p14 ; # calls
wm. w0 c3. ; * 100000
wd. w0 c1. ; div sum of calls
al w3 0
wd. w0 c4. ; div 1000
rs. w3 c2. ; temp := fraction part
jl. w3 (m32.); outinteger( call % )
1<23+ 32<12 + 8
al w2 46
jl. w3 (m26.); outchar( . )
rl. w0 c2.
jl. w3 (m32.) ; outinteger(%-fraction)
48<12 + 3 ;
rl. w2 b22.
rl w3 x2+p14 ; average per call
se w3 0
jl. q4.
al. w0 c6. ; outtext(' ------')
jl. w3 (m31.)
jl. q5. ; skip
q4: dl w1 x2+p12 ; time
wd w1 6 ; div # calls
al w0 0 ; nb: time per call < 13 min
wd. w1 c8. ; div 10000
rs. w0 c2. ; save fraction
al w0 x1
jl. w3 (m32.) ; outinteger
32<12 + 9
al w2 46
jl. w3 (m26.) ; outchar( . )
rl. w0 c2.
jl. w3 (m32.) ; outinteger( fraction )
48<12 + 4
q5: rl. w2 b22. ; module total
dl w0 x2+p12
wd. w0 c8. ; div 10000
rs. w3 c2. ; save fraction
jl. w3 (m32.) ; outinteger( time in seconds )
32<12 + 8
al w2 46
jl. w3 (m26.)
rl. w0 c2.
jl. w3 (m32.) ; outinteger( fraction )
48<12 + 4
; percent of total
dl. w1 c0. ; total time
wd. w1 c11. ; div 10
rs. w1 c2. ; units of ms
rl. w2 b22.
rl w0 x2+p12 ; only low bits
wm. w0 c8. ; * 10000
wd. w0 c2.
al w3 0
wd. w0 c4. ; div 1000
rs. w3 c2. ; save fraction
jl. w3 (m32.) ; outintger( % of total )
32<12 + 10
al w2 46
jl. w3 (m26.) ; outchar ( . )
rl. w0 c2.
jl. w3 (m32.) ; outinteger( fraction )
48<12 + 3
al w2 10 ; nl
jl. w3 (m26.) ; writeln
rl. w1 b22.
al w1 x1+p10
se. w1 (b2.) ; until top of procedures
jl. q2.
; output totals
jl. w3 q8. ; ---------------------
al. w0 c10.
jl. w3 (m31.) ; outtext('<nl>Totals')
rl. w0 c1.
jl. w3 (m32.) ; outinteger( total calls )
32<12 + 17
dl. w0 c0. ; total time
wd. w0 c1. ; div # calls
al w3 0
wd. w0 c8. ; div 10000, convert to seconds
rs. w3 c2.
jl. w3 (m32.) ; outinteger( average per call )
32<12 + 21
al w2 46
jl. w3 (m26.) ; outchar ( . )
rl. w0 c2.
jl. w3 (m32.) ; outinteger( fraction )
48<12 + 4
dl. w0 c0. ; total time
wd. w0 c8. ; div 10000
rs. w3 c2.
jl. w3 (m32.) ; outinteger( time in seconds )
32<12 + 8
al w2 46
jl. w3 (m26.) ; outchar( . )
rl. w0 c2.
jl. w3 (m32.) ; outinteger(fraction)
48<12 + 4
al w2 10
jl. w3 (m26.) ; outnl
jl. a14. ; pass the constants
; procedure printline , destroy all regs
q8: rs. w3 c2. ; save return
al w1 81 ; line length
q9: rs. w1 c7. ; save counter
al w2 45 ; '-'
jl. w3 (m26.) ; repeat outchar('-')
rl. w1 c7.
al w1 x1-1
se w1 0 ; until w1 = 0
jl. q9.
al w2 10
jl. w3 (m26.) ; outnl
jl. (c2.) ; return
; constants and variables
0
c0: 0 ; total time
c1: 0 ; total number of calls
c2: 0-0-0 ; work
c7: 0-0-0 ; work
c3: 100000
c4: 1000
c5: 100
c11: 10
c6: <: ------<0>:>
c8: 10000
c9: <:<12><10>Performance meassurement summary for PASCAL program :<10><10>:>
<: Name Line Called % of calls Average (sec) Total (sec) % of time<10><10><0>:>
c10: <:<10> Totals:<0>:>
e.
a14:
?,
f
clear temp ntpascallib
rename nntpasclib . ntpascallib
end
«eof»