summaryrefslogtreecommitdiffstats
path: root/timings/hundred
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2009-11-19 08:03:26 (GMT)
committerSteven Knight <knight@baldmt.com>2009-11-19 08:03:26 (GMT)
commit57bf294eaae19922e6e39e5c8e9138112b088641 (patch)
treece6a93f58cf7d94d174279509431ccb8d51810d7 /timings/hundred
parentfa7db45e10075bb0010e8134503e7c93ddbb9e30 (diff)
downloadSCons-57bf294eaae19922e6e39e5c8e9138112b088641.zip
SCons-57bf294eaae19922e6e39e5c8e9138112b088641.tar.gz
SCons-57bf294eaae19922e6e39e5c8e9138112b088641.tar.bz2
Capture initial infrastructure for working performance tests.
Diffstat (limited to 'timings/hundred')
-rw-r--r--timings/hundred/SConstruct29
-rw-r--r--timings/hundred/TimeSCons-run.py (renamed from timings/hundred/st.conf)40
2 files changed, 25 insertions, 44 deletions
diff --git a/timings/hundred/SConstruct b/timings/hundred/SConstruct
index 2332d73..648c26a 100644
--- a/timings/hundred/SConstruct
+++ b/timings/hundred/SConstruct
@@ -21,32 +21,15 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-"""
-This configuration is for timing how we handle the NxM interaction when
-we build a lot of targets from a lot of source files.
+target_count = int(ARGUMENTS['TARGET_COUNT'])
-We create a list of 100 target files that will each be built by copying
-a file from a corresponding list of 100 source files. The source
-files themselves are each built by a Python function action that's the
-equivalent of "echo contents > $TARGET".
-"""
+def copy_files( env, target, source ):
+ for t, s in zip(target, source):
+ open(str(t), 'wb').write(open(str(s), 'rb').read())
-target_cnt = 100
+source_list = map(lambda t: 'source_%04d' % t, xrange(target_count))
+target_list = map(lambda t: 'target_%04d' % t, xrange(target_count))
env = Environment()
-def create_file( env, target, source ):
- t = str(target[0])
- open( t, 'w' ).write('contents\n')
-
-source_list = map(lambda t: 'source_%03d' % t, xrange(target_cnt))
-target_list = map(lambda t: 'target_%03d' % t, xrange(target_cnt))
-
-for source in source_list:
- env.Command( source, [], create_file )
-
-def copy_files( env, target, source ):
- for t, s in zip(target, source):
- open(str(t), 'w').write(open(str(s), 'r').read())
-
env.Command( target_list, source_list, copy_files )
diff --git a/timings/hundred/st.conf b/timings/hundred/TimeSCons-run.py
index adfb09e..d21db8a 100644
--- a/timings/hundred/st.conf
+++ b/timings/hundred/TimeSCons-run.py
@@ -22,26 +22,24 @@
#
"""
-scons-time.py configuration file for the "hundred" timing test.
+This configuration is for timing how we handle the NxM interaction when
+we build a lot of targets from a lot of source files.
+
+We create a list of 500 target files that will each be built by copying
+a file from a corresponding list of 500 source files. The source
+files themselves are each built by a Python function action that's the
+equivalent of "echo contents > $TARGET".
"""
-archive_list = [ 'SConstruct' ]
-subdir = '.'
-
-import sys
-sys.path.insert(0, '..')
-import SCons_Bars
-
-revs = [
- 1220, # Use WeakValueDicts in the Memoizer to reduce memory use.
- 1307, # Move signature Node tranlation of rel_paths into the class.
- 1435, # Fix Debug.caller() directory separators.
- 1477, # Delay disambiguation of Node.FS.Entry into File/Dir.
- 1655, # Reduce unnecessary calls to Node.FS.disambiguate().
- 1703, # Lobotomize Memoizer.
- 1727, # Cache Executor methods, reduce calls when scanning.
- 2380, # The Big Signature Refactoring hits branches/core.
-]
-
-vertical_bars = SCons_Bars.Release_Bars.gnuplot(labels=True) + \
- SCons_Bars.Revision_Bars.gnuplot(labels=False, revs=revs)
+import TestSCons
+
+test = TestSCons.TimeSCons()
+
+target_count = 500
+
+for t in xrange(target_count):
+ open('source_%04d' % t, 'wb' ).write('contents\n')
+
+test.main(options='TARGET_COUNT=%s' % target_count)
+
+test.pass_test()