about summary refs log blame commit diff stats
path: root/test/dirsize_benchmark.py
blob: 38f0bfd73c64643ddd85526de5034f0ba715effd (plain) (tree)

























                                                                                 
import os, time
class Dirsize():
	def a(path):
		return len(os.listdir(path))

	def b(path):
		for _, dirs, files in os.walk(path):
			return len(files) + len(dirs)

	def c(path):
		first = next(os.walk(path))
		return len(first[1]) + len(first[2])

paths = {
		'/usr/lib': None,
		'/usr/bin': None,
		'/home/hut': None
}

for key in paths.keys():
	paths[key] = Dirsize.a(key) # assume Dirsize.a() returns a correct result
	for algo in ['a', 'b', 'c']:
		t = time.time()
		for i in range(4):
			assert Dirsize.__dict__[algo](key) == paths[key]
		print("algorithm %s: %20s: %f" % (algo, key, time.time() - t))