symbian-qemu-0.9.1-12/python-2.6.1/Lib/lib2to3/tests/benchmark.py
author Gareth Stockwell <gareth.stockwell@accenture.com>
Wed, 22 Sep 2010 15:40:40 +0100
branchgraphics-phase-3
changeset 111 345f1c88c950
parent 1 2fb8b9db1c86
permissions -rw-r--r--
Fixes to syborg-graphicswrapper.vcproj These changes allow syborg-graphicswrapper to link against the hostthreadadapter and khronosapiwrapper libraries built by the graphics.simulator component. The .vcproj file uses relative paths, which requires that the following three packages are laid out as follows: os/ graphics adapt/ graphics.simulator qemu

#!/usr/bin/env python2.5
"""
This is a benchmarking script to test the speed of 2to3's pattern matching
system. It's equivalent to "refactor.py -f all" for every Python module
in sys.modules, but without engaging the actual transformations.
"""

__author__ = "Collin Winter <collinw at gmail.com>"

# Python imports
import os.path
import sys
from time import time

# Test imports
from .support import adjust_path
adjust_path()

# Local imports
from .. import refactor

### Mock code for refactor.py and the fixers
###############################################################################
class Options:
    def __init__(self, **kwargs):
        for k, v in kwargs.items():
            setattr(self, k, v)

        self.verbose = False

def dummy_transform(*args, **kwargs):
    pass

### Collect list of modules to match against
###############################################################################
files = []
for mod in sys.modules.values():
    if mod is None or not hasattr(mod, '__file__'):
        continue
    f = mod.__file__
    if f.endswith('.pyc'):
        f = f[:-1]
    if f.endswith('.py'):
        files.append(f)

### Set up refactor and run the benchmark
###############################################################################
options = Options(fix=["all"], print_function=False, doctests_only=False)
refactor = refactor.RefactoringTool(options)
for fixer in refactor.fixers:
    # We don't want them to actually fix the tree, just match against it.
    fixer.transform = dummy_transform

t = time()
for f in files:
    print "Matching", f
    refactor.refactor_file(f)
print "%d seconds to match %d files" % (time() - t, len(sys.modules))