diff options
author | Lars Wirzenius <liw@liw.fi> | 2010-07-07 08:23:06 +1200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2010-07-07 08:23:06 +1200 |
commit | 56f628bb3d49a52c6e5ee1360b520c6381ebd510 (patch) | |
tree | e1c1c2a94836495ca7e393b02141a0d54206f816 /speed-test | |
parent | 097c7085412d78f65ac1221a8af6c17820c62361 (diff) | |
download | ttystatus-56f628bb3d49a52c6e5ee1360b520c6381ebd510.tar.gz |
Add speed-test for measuring speed of updates.
Especially when a value is updated and most widgets don't care.
Diffstat (limited to 'speed-test')
-rwxr-xr-x | speed-test | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/speed-test b/speed-test new file mode 100755 index 0000000..cc5e16d --- /dev/null +++ b/speed-test @@ -0,0 +1,56 @@ +#!/usr/bin/python +# Copyright 2010 Lars Wirzenius +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +'''Profile updating of a value, when there are many unrelated widgets.''' + + +import cProfile + +import ttystatus + + +class FakeTTY(object): + + def write(self, string): + pass + + def isatty(self): + return True + + def flush(self): + pass + + +output = FakeTTY() +ts = ttystatus.TerminalStatus(output=output) +ts.add(ttystatus.ElapsedTime()) +ts.add(ttystatus.Literal(' ')) +ts.add(ttystatus.Counter('current-file')) +ts.add(ttystatus.Literal(' files found; ')) +ts.add(ttystatus.ByteSize('uploaded-bytes')) +ts.add(ttystatus.Literal(' uploaded ')) +ts.add(ttystatus.Pathname('current-dir')) +ts['uploaded-bytes'] = 0 + +num_updates = 1000*1000 + +def loop(): + for i in xrange(num_updates): + ts['updated-bytes'] = i + +cProfile.run('loop()', 'ttystatus.prof') + |