Skip to content

Instantly share code, notes, and snippets.

@agrif
Created March 1, 2011 01:21
Show Gist options
  • Save agrif/848414 to your computer and use it in GitHub Desktop.
Save agrif/848414 to your computer and use it in GitHub Desktop.
a simple os.stat performance test
import os, os.path, sys, time
if not len(sys.argv) in (2, 3):
print "Usage: %s dir_to_scan [num_tests]" % (sys.argv[0],)
sys.exit(1)
num_tests = 5
if len(sys.argv) == 3:
try:
num_tests = int(sys.argv[2])
except ValueError:
print "num_tests must be an integer!"
sys.exit(1)
for testnum in xrange(num_tests):
start = time.time()
mtimes = []
for root, dirs, files in os.walk(sys.argv[1]):
for file in files:
path = os.path.join(root, file)
try:
mtimes.append(os.stat(path).st_mtime)
except OSError:
pass
end = time.time()
calls = len(mtimes)
print "%i files in %f seconds: %f files/second" % (calls, end - start, float(calls) / (end - start))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment