mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-21 06:45:27 +00:00
added cpuTime to VM (#12346)
* added cpuTime to VM * Hide VM-time cpuTime() behind --benchmarkVM flag
This commit is contained in:
committed by
Andreas Rumpf
parent
412011eb96
commit
26676066cc
@@ -792,6 +792,8 @@ proc processSwitch*(switch, arg: string, pass: TCmdLinePass, info: TLineInfo;
|
||||
discard "the default"
|
||||
else:
|
||||
localError(conf, info, "unknown Nim version; currently supported values are: {1.0}")
|
||||
of "benchmarkvm":
|
||||
processOnOffSwitchG(conf, {optBenchmarkVM}, arg, pass, info)
|
||||
of "":
|
||||
conf.projectName = "-"
|
||||
else:
|
||||
|
||||
@@ -84,6 +84,7 @@ type # please make sure we have under 32 options
|
||||
optNimV2
|
||||
optMultiMethods
|
||||
optNimV019
|
||||
optBenchmarkVM # Enables cpuTime() in the VM
|
||||
|
||||
TGlobalOptions* = set[TGlobalOption]
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ from math import sqrt, ln, log10, log2, exp, round, arccos, arcsin,
|
||||
from os import getEnv, existsEnv, dirExists, fileExists, putEnv, walkDir, getAppFilename
|
||||
from md5 import getMD5
|
||||
from sighashes import symBodyDigest
|
||||
from times import cpuTime
|
||||
|
||||
from hashes import hash
|
||||
|
||||
@@ -25,6 +26,9 @@ template mathop(op) {.dirty.} =
|
||||
template osop(op) {.dirty.} =
|
||||
registerCallback(c, "stdlib.os." & astToStr(op), `op Wrapper`)
|
||||
|
||||
template timesop(op) {.dirty.} =
|
||||
registerCallback(c, "stdlib.times." & astToStr(op), `op Wrapper`)
|
||||
|
||||
template systemop(op) {.dirty.} =
|
||||
registerCallback(c, "stdlib.system." & astToStr(op), `op Wrapper`)
|
||||
|
||||
@@ -194,3 +198,9 @@ proc registerAdditionalOps*(c: PCtx) =
|
||||
|
||||
registerCallback c, "stdlib.hashes.hashVmImplByte", hashVmImplByte
|
||||
registerCallback c, "stdlib.hashes.hashVmImplChar", hashVmImplByte
|
||||
|
||||
if optBenchmarkVM in c.config.globalOptions:
|
||||
wrap0(cpuTime, timesop)
|
||||
else:
|
||||
proc cpuTime(): float = 5.391245e-44 # Randomly chosen
|
||||
wrap0(cpuTime, timesop)
|
||||
|
||||
@@ -129,3 +129,4 @@ Advanced options:
|
||||
--profiler:on|off enable profiling; requires `import nimprof`, and
|
||||
works better with `--stackTrace:on`
|
||||
see also https://nim-lang.github.io/Nim/estp.html
|
||||
--benchmarkVM:on|off enable benchmarking of VM code with cpuTime()
|
||||
|
||||
Reference in New Issue
Block a user