--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Tools__Profiler.st Fri Jul 01 15:27:21 2011 +0200
@@ -0,0 +1,151 @@
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+ All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+"
+"{ Package: 'stx:libtool' }"
+
+"{ NameSpace: Tools }"
+
+MessageTally subclass:#Profiler
+ instanceVariableNames:'startTimestamp notes'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Interface-Browsers-New-Profiler'
+!
+
+!Profiler class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+ All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+"
+!
+
+example1
+
+ | profiler |
+ profiler := Tools::Profiler spyOn:[1 to: 1000 do:[:i|i factorial]] interval: 10.
+ Tools::NewSystemBrowser browseProfilerStatistics: profiler
+
+ "
+ Profiler example1
+ "
+! !
+
+!Profiler class methodsFor:'instance creation'!
+
+readStatisticsFrom: stream
+
+ ^BinaryInputManager readFrom: stream
+
+ "Created: / 24-11-2007 / 09:24:12 / janfrog"
+! !
+
+!Profiler class methodsFor:'profiling'!
+
+profile: aBlock
+
+ ^self spyOn: aBlock
+
+ "Created: / 18-02-2008 / 20:24:08 / janfrog"
+!
+
+profileAndOpenBrowser: aBlock
+
+ Tools::NewSystemBrowser browseProfilerStatistics:
+ (self profile: aBlock)
+
+ "
+ Tools::Profiler profileAndOpenBrowser:[ 10000 timesRepeat:[100 factorial] ]
+ "
+
+ "Created: / 18-02-2008 / 20:24:56 / janfrog"
+ "Modified: / 18-02-2008 / 22:16:29 / janfrog"
+!
+
+spyOn: aBlock
+
+ ^self spyOn: aBlock interval: 1
+
+ "Created: / 24-11-2007 / 08:31:22 / janfrog"
+ "Modified: / 25-12-2008 / 20:39:33 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+spyOn: aBlock interval: interval
+
+ ^self new spyOn: aBlock interval: interval
+
+ "Created: / 24-11-2007 / 08:25:37 / janfrog"
+! !
+
+!Profiler methodsFor:'I/O'!
+
+storeStatisticsOn: stream
+
+ ^BinaryOutputManager store: self on: stream
+
+ "Created: / 24-11-2007 / 09:23:11 / janfrog"
+! !
+
+!Profiler methodsFor:'accessing'!
+
+computationTime
+ ^ endTime - startTime
+
+ "Created: / 24-11-2007 / 08:41:33 / janfrog"
+!
+
+notes
+ ^ notes
+
+ "Created: / 24-11-2007 / 09:24:50 / janfrog"
+!
+
+notes:something
+ notes := something.
+
+ "Created: / 24-11-2007 / 09:24:50 / janfrog"
+!
+
+startTimestamp
+ ^ startTimestamp
+
+ "Created: / 24-11-2007 / 09:01:12 / janfrog"
+! !
+
+!Profiler methodsFor:'profiling'!
+
+spyOn: aBlock interval: interval
+
+ startTimestamp := Timestamp now.
+ super spyOn: aBlock interval: interval.
+ self nTally isZero ifFalse:[self tree computePercentage: self nTally].
+ ^self
+
+ "Created: / 24-11-2007 / 08:21:28 / janfrog"
+! !
+
+!Profiler class methodsFor:'documentation'!
+
+version_CVS
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__Profiler.st,v 1.1 2011-07-01 13:27:21 cg Exp $'
+!
+
+version_SVN
+ ^ '§Id: Tools__Profiler.st 7486 2009-10-26 22:06:24Z vranyj1 §'
+! !