Benchmark: joinen...
Verfasst: Montag 14. Mai 2007, 14:18
Ein Sinnloser Benchmark:
Ausgabe:
Eigentlich wollte ich nur wissen, was schneller ist: '%s/%s' % ('eins','zwei') oder '/'.join(('eins','zwei'))
Dumm ist, wenn man in der zweiten Variante eine Liste angibt. Wobei das IMHO besser zu lesen ist...
Code: Alles auswählen
import timeit, os
loop = 5000000
tests = (
("'%s/%s' % ('eins','zwei')", ""),
("'/'.join(('eins','zwei'))", ""),
("'/'.join(['eins','zwei'])", ""),
("os.sep.join(('eins','zwei'))", "import os"),
("posixpath.join(('eins','zwei'))", "import posixpath"),
)
for no, test in enumerate(tests):
print "%s - %s" % (no+1, test[0])
test = timeit.Timer(test[0], test[1])
print "%.2f" % test.timeit(number=loop)
print
Code: Alles auswählen
1 - '%s/%s' % ('eins','zwei')
1.96
2 - '/'.join(('eins','zwei'))
1.84
3 - '/'.join(['eins','zwei'])
3.00
4 - os.sep.join(('eins','zwei'))
2.30
5 - posixpath.join(('eins','zwei'))
3.28
Dumm ist, wenn man in der zweiten Variante eine Liste angibt. Wobei das IMHO besser zu lesen ist...