#! /usr/bin/env python """ A *very* basic performance test. """ from __future__ import print_function import argparse import textwrap import timeit IMPORT = "from jsonschema import Draft3Validator, Draft4Validator, validate\n" parser = argparse.ArgumentParser() parser.add_argument("-n", "--number", type=int, default=100) arguments = parser.parse_args() print("Validating {0} times.".format(arguments.number)) for name, benchmark in ( ( "Simple", """ validator = Draft3Validator( {"type" : "object", "properties" : {"foo" : {"required" : True}}} ) instance = {"foo" : 12, "bar" : 13} """ ), ( "Meta schema", """ validator = Draft3Validator(Draft3Validator.META_SCHEMA) instance = validator.META_SCHEMA """ ), ): results = timeit.timeit( number=arguments.number, setup=IMPORT + textwrap.dedent(benchmark), stmt="validator.validate(instance)", ) print("{0:15}: {1} seconds".format(name, results))