Ich habe eine Sqlalchemy-Abfrage, die ein Tupel zurückgibt. Ich übergebe dieses Tupel an eine Funktion, und da es ein unveränderlicher Typ ist, wird in der aufgerufenen Funktion eine neue Instanz des Tupels erstellt.
Wie geht Python mit diesem in Bezug auf die Speicherverwaltung? Wird eine vollständige Kopie des Tupels erstellt, oder wird eine clevere "copy on write/zero copy" ähnliche Funktionalität verwendet?
Das Problem für mich ist, dass diese ursprünglichen Tupel große Mengen an Speicher verbrauchen können, und allein durch den Aufruf einer Funktion, um sie zu verarbeiten, verdoppelt Python den Speicherverbrauch.
Wie kann ich diese Ineffizienz vermeiden, außer indem ich den Code inline schreibe?