Schatten Licht

Geschwindigkeitstest - eine Liste summieren, selbstgeschrieben oder mit sum()

Hier teste ich kurz, wie lange ein selbstgeschriebenes Programm zum summieren einer Liste von Zahlen braucht und vergleiche sie mit der mitgelieferten Funktion sum().

Die Funktionen, die ich nutze sind:

def summieren(liste): 
	"""Summiere alle Zahlen der Liste manuell."""
	# erst brauchen wir einen Zähler, 
	# auf den wir alle Zahlen aufsummieren.
	gesamt = 0
	# Dann summieren wir 
	# alle Zahlen der Liste zu dem Zähler. 
	for x in liste: 
		# Das heißt, wir erhöhen ihn
		# für jede Zahl in der Liste um die Zahl. 
		gesamt += x
	# und geben ihn dann zurück. 
	return gesamt

und

def summieren(liste): 
	"""Summiere alle Zahlen der Liste mit sum()."""
	return sum(liste) 

Die benötigte Zeit teste ich, indem ich die Funtion in einem doctest jeweils 100001 mal ablaufen lasse und prüfe, wie lange python braucht, um das Skript zu auszuführen.

Die vollständigen Quelltexte habe ich an die Seite angehängt.

Die Aufrufe sind damit:
time python summieren_selbst.py # Selbstgeschriebener Code
time python summieren_sum.py # Eingebaute Funktion

Und ich erhalte die Ergebnisse:

$ time python summieren_selbst.py

real 0m7.536s
user 0m7.430s
sys 0m0.030s

$ time python summieren_sum.py

real 0m4.362s
user 0m4.260s
sys 0m0.070s

Damit braucht meine selbstgeschriebene Summierfunktion etwa 74% länger als die eingebaute.

Fazit: Ich konnte mir bestätigen, dass es besser ist, die eingebaute Funktion zu nutzen, statt sie selbst zu schreiben. Der eingebaute Code ist effizienter.

AnhangGröße
summieren_sum.py.txt476 Bytes
summieren_selbst.py.txt749 Bytes


 
 
 
Diese Seite nutzt Drupal.
Design: Arne Babenhauserheide.

Werke von Arne Babenhauserheide.
Lizensiert unter freien Lizenzen.

Valid XHTML 1.0 Strict