cleanup of PR #14833 (VM profiler)
This commit is contained in:
parent
d7ccd82eac
commit
f92d2eaa35
1 changed files with 16 additions and 13 deletions
|
|
@ -8,20 +8,23 @@ proc enter*(prof: var Profiler, c: PCtx, tos: PStackFrame) {.inline.} =
|
||||||
prof.tEnter = cpuTime()
|
prof.tEnter = cpuTime()
|
||||||
prof.tos = tos
|
prof.tos = tos
|
||||||
|
|
||||||
|
proc leaveImpl(prof: var Profiler, c: PCtx) {.noinline.} =
|
||||||
|
let tLeave = cpuTime()
|
||||||
|
var tos = prof.tos
|
||||||
|
var data = c.config.vmProfileData.data
|
||||||
|
while tos != nil:
|
||||||
|
if tos.prc != nil:
|
||||||
|
let li = tos.prc.info
|
||||||
|
if li notin data:
|
||||||
|
data[li] = ProfileInfo()
|
||||||
|
data[li].time += tLeave - prof.tEnter
|
||||||
|
if tos == prof.tos:
|
||||||
|
inc data[li].count
|
||||||
|
tos = tos.next
|
||||||
|
|
||||||
proc leave*(prof: var Profiler, c: PCtx) {.inline.} =
|
proc leave*(prof: var Profiler, c: PCtx) {.inline.} =
|
||||||
if optProfileVM in c.config.globalOptions:
|
if optProfileVM in c.config.globalOptions:
|
||||||
let tLeave = cpuTime()
|
leaveImpl(prof, c)
|
||||||
var tos = prof.tos
|
|
||||||
var data = c.config.vmProfileData.data
|
|
||||||
while tos != nil:
|
|
||||||
if tos.prc != nil:
|
|
||||||
let li = tos.prc.info
|
|
||||||
if li notin data:
|
|
||||||
data[li] = ProfileInfo()
|
|
||||||
data[li].time += tLeave - prof.tEnter
|
|
||||||
if tos == prof.tos:
|
|
||||||
inc data[li].count
|
|
||||||
tos = tos.next
|
|
||||||
|
|
||||||
proc dump*(conf: ConfigRef, pd: ProfileData): string =
|
proc dump*(conf: ConfigRef, pd: ProfileData): string =
|
||||||
var data = pd.data
|
var data = pd.data
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue