Python-Datenstrukturen Overhead / Performance

Gibt es irgendeinen Leistungsvorteil, um Listen über Wörterbücher über Tupel in Python zu verwenden?

Wenn ich mich für die Geschwindigkeit optimiere, gibt es einen Grund, einen über einen anderen zu bevorzugen?

  • Optimierungsproblem in Python
  • Optimierung einer Partitionsfunktion
  • Schnellste Möglichkeit, eine Zeile aus großer Datei in Python zu löschen
  • Überprüfen Sie die Einschränkungen sind in cvxpy mit tatsächlichen Werten ok
  • Python: Verwenden von CVXOPT für die quadratische Programmierung
  • Vermeidung von unnötigem Slice-Kopieren in Python
  • 4 Solutions collect form web for “Python-Datenstrukturen Overhead / Performance”

    Reich,

    Listen und Dicts sind Tiere, die für unterschiedliche Bedürfnisse geeignet sind. Vergewissern Sie sich, dass Sie keine Listen für lineare Suchvorgänge verwenden, wo Dicts Hashes perfekt sind, weil es viel langsamer ist. Auch, wenn Sie nur eine Liste von Elementen zu durchqueren brauchen, verwenden Sie keine Dicts, weil es viel mehr Platz als Listen nehmen wird.

    Das klingt offensichtlich, aber die Auswahl der richtigen Datenstrukturen hat algorithmisch viel höhere Performance-Gewinne, die Mikro-Optimierung durch effizientere kompilierte Code-Layouts, etc. Wenn Sie in einer Liste in O (n) anstatt in einem Dict in O ( 1), werden Mikrooptimierungen Sie nicht retten.

    Tupel wird etwas schneller für eine kleine Anzahl von Elementen zu konstruieren. Obwohl tatsächlich die meisten Gewinne im Speicher verwendet werden, anstatt CPU-Zyklen, da Tupel weniger Platz benötigen als Listen.

    Mit diesem Wesen sollte der Leistungsunterschied vernachlässigbar sein, und im Allgemeinen sollten Sie sich nicht um diese Art von Mikrooptimierungen kümmern, bis Sie Ihren Code profiliert haben und einen Abschnitt des Codes identifiziert haben, der ein Engpass ist.

    Der große Unterschied ist, dass Tupel unveränderlich sind, während Listen und Wörterbücher veränderliche Datenstrukturen sind. Dies bedeutet, dass Tupel auch schneller sind, also wenn Sie eine Sammlung von Artikeln haben, die sich nicht ändern, sollten Sie sie über Listen bevorzugen.

    Siehe folgende.

    • Beschleunigung Python
    • Wann sollten Sie mit der Optimierung des Codes beginnen
    • Ist die vorzeitige Optimierung wirklich die Wurzel allen Übels?
    • Sind Tupel effizienter als Listen in Python?
    Python ist die beste Programmiersprache der Welt.