new_contents: from . import util
  from .source import util as source_util
  import gc
  import decimal
  import imp
  import importlib
  import sys
  import timeit
  
  
  def bench_cache(import_, repeat, number):
      """Measure the time it takes to pull from sys.modules."""
      name = '<benchmark import>'
      with util.uncache(name):
          module = imp.new_module(name)
          sys.modules[name] = module
          runs = []
          for x in range(repeat):
              start_time = timeit.default_timer()
              for y in range(number):
                  import_(name)
              end_time = timeit.default_timer()
              runs.append(end_time - start_time)
          return min(runs)
  
  
  def bench_importing_source(import_, repeat, number, loc=100000):
      """Measure importing source from disk.
  
      For worst-case scenario, the line endings are \\r\\n and thus require
      universal newline translation.
  
      """
      name = '__benchmark'
      with source_util.create_modules(name) as mapping:
          with open(mapping[name], 'w') as file:
              for x in range(loc):
                  file.write("{0}\r\n".format(x))
          with util.import_state(path=[mapping['.root']]):
              runs = []
              for x in range(repeat):
                  start_time = timeit.default_timer()
                  for y in range(number):
                      try:
                          import_(name)
                      finally:
                          del sys.modules[name]
                  end_time = timeit.default_timer()
                  runs.append(end_time - start_time)
              return min(runs)
  
  
  def main(import_):
      args = [('sys.modules', bench_cache, 5, 500000),
              ('source', bench_importing_source, 5, 10000)]
      test_msg = "{test}, {number} times (best of {repeat}):"
      result_msg = "{result:.2f} secs"
      gc.disable()
      try:
          for name, meth, repeat, number in args:
              result = meth(import_, repeat, number)
              print(test_msg.format(test=name, repeat=repeat,
                      number=number).ljust(40),
                      result_msg.format(result=result).rjust(10))
      finally:
          gc.enable()
  
  
  if __name__ == '__main__':
      import optparse
  
      parser = optparse.OptionParser()
      parser.add_option('-b', '--builtin', dest='builtin', action='store_true',
                          default=False, help="use the built-in __import__")
      options, args = parser.parse_args()
      if args:
          raise RuntimeError("unrecognized args: {0}".format(args))
      import_ = __import__
      if not options.builtin:
          import_ = importlib.__import__
  
      main(import_)
  
subject: Add simple tests for __import__ for future optimizations to importlib.