4
package scala.tools.nsc.doc
5
package html.page.diagram
9
class TimeTracker(title: String) {
10
var totalTime: Long = 0l
11
var maxTime: Long = 0l
12
var instances: Int = 0
14
def addTime(ms: Long) = {
21
def printStats(print: String => Unit) = {
23
print(title + ": no stats gathered")
26
print(" " + "=" * title.length)
27
print(" count: " + instances + " items")
28
print(" total time: " + totalTime + " ms")
29
print(" average time: " + (totalTime/instances) + " ms")
30
print(" maximum time: " + maxTime + " ms")
36
private[this] val filterTrack = new TimeTracker("diagrams model filtering")
37
private[this] val modelTrack = new TimeTracker("diagrams model generation")
38
private[this] val dotGenTrack = new TimeTracker("dot diagram generation")
39
private[this] val dotRunTrack = new TimeTracker("dot process runnning")
40
private[this] val svgTrack = new TimeTracker("svg processing")
41
private[this] var brokenImages = 0
42
private[this] var fixedImages = 0
44
def printStats(settings: Settings) = {
45
if (settings.docDiagramsDebug.value) {
46
settings.printMsg("\nDiagram generation running time breakdown:\n")
47
filterTrack.printStats(settings.printMsg)
48
modelTrack.printStats(settings.printMsg)
49
dotGenTrack.printStats(settings.printMsg)
50
dotRunTrack.printStats(settings.printMsg)
51
svgTrack.printStats(settings.printMsg)
52
println(" Broken images: " + brokenImages)
53
println(" Fixed images: " + fixedImages)
58
def addFilterTime(ms: Long) = filterTrack.addTime(ms)
59
def addModelTime(ms: Long) = modelTrack.addTime(ms)
60
def addDotGenerationTime(ms: Long) = dotGenTrack.addTime(ms)
61
def addDotRunningTime(ms: Long) = dotRunTrack.addTime(ms)
62
def addSvgTime(ms: Long) = svgTrack.addTime(ms)
64
def addBrokenImage(): Unit = brokenImages += 1
65
def addFixedImage(): Unit = fixedImages += 1
b'\\ No newline at end of file'