From: zooko <zooko@zooko.com>
Date: Thu, 25 Jan 2007 23:33:48 +0000 (+0530)
Subject: add benchmark
X-Git-Url: https://git.rkrishnan.org/simplejson/components/%22file:/frontends//%22%22?a=commitdiff_plain;h=d3b870165f7451b50d4fd3c16ce012ab2f7aa2c1;p=tahoe-lafs%2Fzfec.git

add benchmark

darcs-hash:17fbf0713dd2b6615dd817daba3113c5eacb0a53
---

diff --git a/pyfec/fec/filefec.py b/pyfec/fec/filefec.py
index a2c036e..d18b69e 100644
--- a/pyfec/fec/filefec.py
+++ b/pyfec/fec/filefec.py
@@ -105,3 +105,29 @@ def encode_file_stringy(inf, cb, k, m, chunksize=4096):
         # print "...finished to encode()"
         cb(res, indatasize)
 
+def bench():
+    FILESIZE=1000000
+    CHUNKSIZE=4096
+    import os, time
+    left=FILESIZE
+    outfile = open("tmpranddata", "wb")
+    try:
+        while left:
+            d = os.urandom(min(left, CHUNKSIZE))
+            outfile.write(d)
+            left -= len(d)
+        outfile.flush()
+        outfile = None
+        infile = open("tmpranddata", "rb")
+        def cb(s, l):
+            pass
+        st = time.time()
+        encode_file(infile, cb, 25, 100, 4096)
+        so = time.time()
+        infile.close()
+        infile = None
+        print "Encoded %s byte file in %0.2f seconds, or %0.2f million bytes per second" % (FILESIZE, so-st, FILESIZE/((so-st)*1000000),)
+        return so-st
+    finally:
+        os.remove("tmpranddata")
+