Einzelnen Beitrag anzeigen
Alt 27.02.2018, 15:58   #782
Jan:)!
Benutzer
 
Registriert seit: 09/2002
Beiträge: 5.306
Standard

Zitat:
Zitat von ShortSqueeze Beitrag anzeigen
Da wird ein Befehl wie Array.sort egal ob in dem Python ad, Visual Basic, C++,C immer am ende sogar von der gleichen DLL ausgeführt !
Der Befehl wird tatsächlich einfach an eine .Net Framework DLL weitergereicht.
Ganz so ist es nicht.
Es ist möglich in C++ Code zu schreiben, der genauso langsam ist wie Python. Das da oben könnte ein Beispiel sein, kenne ich mich nicht aus.

Es gibt aber auch strukturelle Unterschiede, die dazu führen, dass du in C++ Code schreiben kannst, der deutlich schneller ist als Python Code.

Ein gutes Beispiel ist die feste Typisierung.
In C++ kannst du festlegen, dass in dem Array nur Integer Werte sind. Das sortieren geht dann ganz erheblich schneller.

In Python wird der Typ erst zur Laufzeit geprüft.
In dem Array könnten auch nur Integer Werte sein.
Zur Ausführungszeit ist das aber unbekannt und die Sortierfunktion muss zu jedem Wert eine Typprüfung machen.

Es kann sein, dass die .Net Funktion das bei C++ auch macht, aber es zwingt dich ja keiner dazu diese zu nutzen.
Die stdlib C++ Bibliothek oder STL macht das ganz sicher nicht und ist wesentlich schneller als das beste, was du in Python erreichen kannst.
Jan:)! ist offline   Mit Zitat antworten