diff options
| author | Kali Kaneko <kali@leap.se> | 2015-11-17 12:54:25 -0400 | 
|---|---|---|
| committer | Kali Kaneko <kali@leap.se> | 2015-11-17 12:56:26 -0400 | 
| commit | 46678a7aecb98dbdc20846477c7f5110f3c63861 (patch) | |
| tree | 6d33b00719b8bf85d92a43fd6ca0ac11dffc0eb0 /scripts/profiling/sync/benchmark-uploads.py | |
| parent | 3aea1652d82755affdcf4c734f9f0ba004482046 (diff) | |
[feat] add script to measure batch of uploads
- Releases: 0.8.0
Diffstat (limited to 'scripts/profiling/sync/benchmark-uploads.py')
| -rwxr-xr-x | scripts/profiling/sync/benchmark-uploads.py | 60 | 
1 files changed, 60 insertions, 0 deletions
diff --git a/scripts/profiling/sync/benchmark-uploads.py b/scripts/profiling/sync/benchmark-uploads.py new file mode 100755 index 00000000..d371bb1a --- /dev/null +++ b/scripts/profiling/sync/benchmark-uploads.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# benchmark_uploads.py +# Copyright (C) 2015 LEAP +# +# 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/>. +""" +Run benchmarks for sync (uploads). +""" +import getpass +import sys +import datetime +import subprocess + +NUM_ITER = 10 +NUM_UPLOADS = 10 + +RESULTS = [] + + +if __name__ == "__main__": +    user = sys.argv[1] +    passwd = sys.argv[2] +    opts = ("--no-stats --send-num %s --payload-file sample --repeat-payload -p " +            "%s -b /tmp/profile-soledad-upload ") % (NUM_UPLOADS, passwd) + +    for i in xrange(NUM_ITER): +        print "[+] ITERATION NUMBER: ", i +        start = datetime.datetime.now() +        cmd = "./profile-sync.py " + opts + user +        print "CALLING", cmd +        result = subprocess.check_call(cmd.split()) +        print "EXIT CODE:", result +        end = datetime.datetime.now() +        delta = (end - start) +        RESULTS.append(delta) +        print "[+] SYNC TOOK %s seconds" % delta.seconds + +    import numpy +    res = [x.seconds for x in RESULTS] +    print "-------------------------" +    print "SYNC UPLOAD REPORT" +    print "USER:", user +    print "UPLOADS: %s 1K DOCS" % NUM_UPLOADS +    print "ITERATIONS: %s" % NUM_ITER +    print  +    print "mean :", numpy.mean(res) +    print "stdev:", numpy.std(res) +    print "-------------------------"  | 
