Mercurial > hg > Members > nobuyasu > test
diff pyrect/pyrect/llvm_bench.py @ 9:493c96d030c0
add pyrect
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 14 Jun 2011 17:24:03 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pyrect/pyrect/llvm_bench.py Tue Jun 14 17:24:03 2011 +0900 @@ -0,0 +1,38 @@ +#!/usr/bin/env python + +import sys,re +from optparse import OptionParser +from timeit import Timer +from pyrect.regexp import Regexp +from pyrect.llvm_translator import LLVMTranslator + +myusage = "%prog [-O] [-p] [-s string] [-r regexp] [-E]" +psr = OptionParser(usage=myusage) +psr.add_option("-O", action="store_true", dest="optimize", default=False, help="optimimzation") +psr.add_option("-E", action="store_true", dest="execute", default=False, help="execute Module") +psr.add_option("-p", action="store_true", dest="print_", default=False, help="print module") +psr.add_option("-g", action="store_true", dest="debug", default=False, help="add debug stmt to module") +psr.add_option("-v", action="store_true", dest="verbose", default=False, help="verbose mode") +psr.add_option("-n", action="store", type="int", dest="number", default=1000, help="number of eval", metavar="INT") +psr.add_option("-r", action="store", type="string", dest="regexp", default="(A|B)*C", help="regexp", metavar="FILE") +psr.add_option("-s", action="store", type="string", dest="string", default="A"+"B"*500+"C", help="string", metavar="FILE") +(opts, args) = psr.parse_args(sys.argv) + +if opts.verbose: print "regexp = \"%s\", string = \"%s\", loop = %d" % (opts.regexp, opts.string, opts.number) + +reg = Regexp(opts.regexp) +llvmt = LLVMTranslator(reg) +llvmt.string = opts.string +llvmt.debug = opts.debug +llvmt.optimize = opts.optimize + +if opts.print_: llvmt.translate() + +if opts.execute: + print "LLVM :", Timer(setup='from __main__ import llvmt', stmt='llvmt.execute()').timeit(opts.number) + + reg = re.compile("^%s$" % opts.regexp) + print "re :", Timer(setup='from __main__ import reg', stmt='reg.search("%s")' % opts.string).timeit(opts.number) + + reg = Regexp(opts.regexp) + print "pyrect:", Timer(setup='from __main__ import reg', stmt='reg.matches("%s")' % opts.string).timeit(opts.number)