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.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.} =
|
||||
if optProfileVM in c.config.globalOptions:
|
||||
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
|
||||
leaveImpl(prof, c)
|
||||
|
||||
proc dump*(conf: ConfigRef, pd: ProfileData): string =
|
||||
var data = pd.data
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue