diff options
author | Steven Knight <knight@baldmt.com> | 2009-11-19 08:03:26 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2009-11-19 08:03:26 (GMT) |
commit | 57bf294eaae19922e6e39e5c8e9138112b088641 (patch) | |
tree | ce6a93f58cf7d94d174279509431ccb8d51810d7 /timings/hundred | |
parent | fa7db45e10075bb0010e8134503e7c93ddbb9e30 (diff) | |
download | SCons-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/SConstruct | 29 | ||||
-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() |