| Index: tracing/third_party/tvcm/third_party/rjsmin/bench/main.py
|
| diff --git a/tracing/third_party/tvcm/third_party/rjsmin/bench/main.py b/tracing/third_party/tvcm/third_party/rjsmin/bench/main.py
|
| deleted file mode 100644
|
| index ed9af3eb50df9e097d5777bb0e0418177952035e..0000000000000000000000000000000000000000
|
| --- a/tracing/third_party/tvcm/third_party/rjsmin/bench/main.py
|
| +++ /dev/null
|
| @@ -1,249 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# -*- coding: ascii -*-
|
| -r"""
|
| -=================================
|
| - Benchmark jsmin implementations
|
| -=================================
|
| -
|
| -Benchmark jsmin implementations.
|
| -
|
| -:Copyright:
|
| -
|
| - Copyright 2011 - 2014
|
| - Andr\xe9 Malo or his licensors, as applicable
|
| -
|
| -:License:
|
| -
|
| - Licensed under the Apache License, Version 2.0 (the "License");
|
| - you may not use this file except in compliance with the License.
|
| - You may obtain a copy of the License at
|
| -
|
| - http://www.apache.org/licenses/LICENSE-2.0
|
| -
|
| - Unless required by applicable law or agreed to in writing, software
|
| - distributed under the License is distributed on an "AS IS" BASIS,
|
| - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| - See the License for the specific language governing permissions and
|
| - limitations under the License.
|
| -
|
| -Usage::
|
| -
|
| - python -mbench.main [-c COUNT] [-p file] jsfile ...
|
| -
|
| - -c COUNT number of runs per jsfile and minifier. Defaults to 10.
|
| - -p file File to write the benchmark results in (pickled)
|
| -
|
| -"""
|
| -if __doc__:
|
| - __doc__ = __doc__.encode('ascii').decode('unicode_escape')
|
| -__author__ = r"Andr\xe9 Malo".encode('ascii').decode('unicode_escape')
|
| -__docformat__ = "restructuredtext en"
|
| -__license__ = "Apache License, Version 2.0"
|
| -__version__ = "1.0.0"
|
| -
|
| -import sys as _sys
|
| -import time as _time
|
| -
|
| -import_notes = []
|
| -class jsmins(object):
|
| - from bench import jsmin as p_01_simple_port
|
| - if _sys.version_info >= (2, 4):
|
| - from bench import jsmin_2_0_9 as p_02_jsmin_2_0_9
|
| - else:
|
| - import_notes.append(
|
| - "jsmin_2_0_9 available for python 2.4 and later..."
|
| - )
|
| - print(import_notes[-1])
|
| - try:
|
| - import slimit as _slimit_0_8_1
|
| - except (ImportError, SyntaxError):
|
| - import_notes.append("slimit_0_8_1 could not be imported")
|
| - print(import_notes[-1])
|
| - else:
|
| - class p_03_slimit_0_8_1(object):
|
| - pass
|
| - p_03_slimit_0_8_1 = p_03_slimit_0_8_1()
|
| - p_03_slimit_0_8_1.jsmin = _slimit_0_8_1.minify
|
| - class p_04_slimit_0_8_1_mangle(object):
|
| - pass
|
| - p_04_slimit_0_8_1_mangle = p_04_slimit_0_8_1_mangle()
|
| - p_04_slimit_0_8_1_mangle.jsmin = \
|
| - lambda x, s=_slimit_0_8_1: s.minify(x, True)
|
| -
|
| - import rjsmin as p_05_rjsmin
|
| - try:
|
| - import _rjsmin as p_06__rjsmin
|
| - except ImportError:
|
| - import_notes.append("_rjsmin (C-Port) not available")
|
| - print(import_notes[-1])
|
| -jsmins.p_05_rjsmin.jsmin = jsmins.p_05_rjsmin._make_jsmin(
|
| - python_only=True
|
| -)
|
| -print("Python Release: %s" % ".".join(map(str, _sys.version_info[:3])))
|
| -print("")
|
| -
|
| -
|
| -def slurp(filename):
|
| - """ Load a file """
|
| - fp = open(filename)
|
| - try:
|
| - return fp.read()
|
| - finally:
|
| - fp.close()
|
| -
|
| -
|
| -def print_(*value, **kwargs):
|
| - """ Print stuff """
|
| - (kwargs.get('file') or _sys.stdout).write(
|
| - ''.join(value) + kwargs.get('end', '\n')
|
| - )
|
| -
|
| -
|
| -def bench(filenames, count):
|
| - """
|
| - Benchmark the minifiers with given javascript samples
|
| -
|
| - :Parameters:
|
| - `filenames` : sequence
|
| - List of filenames
|
| -
|
| - `count` : ``int``
|
| - Number of runs per js file and minifier
|
| -
|
| - :Exceptions:
|
| - - `RuntimeError` : empty filenames sequence
|
| - """
|
| - if not filenames:
|
| - raise RuntimeError("Missing files to benchmark")
|
| - try:
|
| - xrange
|
| - except NameError:
|
| - xrange = range
|
| - try:
|
| - cmp
|
| - except NameError:
|
| - cmp = lambda a, b: (a > b) - (a < b)
|
| -
|
| - ports = [item for item in dir(jsmins) if item.startswith('p_')]
|
| - ports.sort()
|
| - space = max(map(len, ports)) - 4
|
| - ports = [(item[5:], getattr(jsmins, item).jsmin) for item in ports]
|
| - flush = _sys.stdout.flush
|
| -
|
| - struct = []
|
| - inputs = [(filename, slurp(filename)) for filename in filenames]
|
| - for filename, script in inputs:
|
| - print_("Benchmarking %r..." % filename, end=" ")
|
| - flush()
|
| - outputs = []
|
| - for _, jsmin in ports:
|
| - try:
|
| - outputs.append(jsmin(script))
|
| - except (SystemExit, KeyboardInterrupt):
|
| - raise
|
| - except:
|
| - outputs.append(None)
|
| - struct.append(dict(
|
| - filename=filename,
|
| - sizes=[
|
| - (item is not None and len(item) or None) for item in outputs
|
| - ],
|
| - size=len(script),
|
| - messages=[],
|
| - times=[],
|
| - ))
|
| - print_("(%.1f KiB)" % (struct[-1]['size'] / 1024.0,))
|
| - flush()
|
| - times = []
|
| - for idx, (name, jsmin) in enumerate(ports):
|
| - if outputs[idx] is None:
|
| - print_(" FAILED %s" % (name,))
|
| - struct[-1]['times'].append((name, None))
|
| - else:
|
| - print_(" Timing %s%s... (%5.1f KiB %s)" % (
|
| - name,
|
| - " " * (space - len(name)),
|
| - len(outputs[idx]) / 1024.0,
|
| - idx == 0 and '*' or ['=', '>', '<'][
|
| - cmp(len(outputs[idx]), len(outputs[0]))
|
| - ],
|
| - ), end=" ")
|
| - flush()
|
| -
|
| - xcount = count
|
| - while True:
|
| - counted = [None for _ in xrange(xcount)]
|
| - start = _time.time()
|
| - for _ in counted:
|
| - jsmin(script)
|
| - end = _time.time()
|
| - result = (end - start) * 1000
|
| - if result < 10: # avoid measuring within the error range
|
| - xcount *= 10
|
| - continue
|
| - times.append(result / xcount)
|
| - break
|
| -
|
| - print_("%8.2f ms" % times[-1], end=" ")
|
| - flush()
|
| - if len(times) <= 1:
|
| - print_()
|
| - else:
|
| - print_("(factor: %s)" % (', '.join([
|
| - '%.2f' % (timed / times[-1]) for timed in times[:-1]
|
| - ])))
|
| - struct[-1]['times'].append((name, times[-1]))
|
| -
|
| - flush()
|
| - print_()
|
| -
|
| - return struct
|
| -
|
| -
|
| -def main(argv=None):
|
| - """ Main """
|
| - import getopt as _getopt
|
| - import os as _os
|
| - import pickle as _pickle
|
| -
|
| - if argv is None:
|
| - argv = _sys.argv[1:]
|
| - try:
|
| - opts, args = _getopt.getopt(argv, "hc:p:", ["help"])
|
| - except getopt.GetoptError:
|
| - e = _sys.exc_info()[0](_sys.exc_info()[1])
|
| - print >> _sys.stderr, "%s\nTry %s -mbench.main --help" % (
|
| - e,
|
| - _os.path.basename(_sys.executable),
|
| - )
|
| - _sys.exit(2)
|
| -
|
| - count, pickle = 10, None
|
| - for key, value in opts:
|
| - if key in ("-h", "--help"):
|
| - print >> _sys.stderr, (
|
| - "%s -mbench.main [-c count] [-p file] cssfile ..." % (
|
| - _os.path.basename(_sys.executable),
|
| - )
|
| - )
|
| - _sys.exit(0)
|
| - elif key == '-c':
|
| - count = int(value)
|
| - elif key == '-p':
|
| - pickle = str(value)
|
| -
|
| - struct = bench(args, count)
|
| - if pickle:
|
| - fp = open(pickle, 'wb')
|
| - try:
|
| - fp.write(_pickle.dumps((
|
| - ".".join(map(str, _sys.version_info[:3])),
|
| - import_notes,
|
| - struct,
|
| - ), 0))
|
| - finally:
|
| - fp.close()
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - main()
|
|
|