|
|
Speicherbedarf und Performance bei Variablenmitgabe in Funkt |
|
MatLabNooB |
Forum-Guru
|
|
Beiträge: 262
|
|
|
|
Anmeldedatum: 27.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.07.2010, 16:49
Titel: Speicherbedarf und Performance bei Variablenmitgabe in Funkt
|
|
moin Leute,
was denkt ihr, ich hab ne GUI geschrieben, und zum Austausch der Daten zwischen einzelnen Funktionen speicher ich alles in handles, d.h. handles beinhaltet recht viel Daten.
Nun zu meiner Frage: wie wirkt es sich auf die Geschwindigkeit und den Speicherbedarf aus, dass ich den handles-structure an jede Funktion mitübergebe? ist es besser, wenn eine Funktion nur eins zwei Werte aus handles braucht nur diese mitzugeben statt des ganzen structures?
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 17.07.2010, 22:04
Titel:
|
|
Hallo,
bei der Übergabe eines Structs wird dies intern nicht dupliziert, sondern praktisch ein Zeiger auf den Struct übergeben. Auch wenn einzelne Felder des Structs verändert werden, werden die anderen Arrays in den Feldern nicht dupliziert.
Deshalb ist die Nutzung eines Structs als Container für Daten effizient.
Gruß, Jan
|
|
|
Dattelkopf |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.05.2019, 13:52
Titel:
|
|
Hi zusammen,
ich buddel das Thema jetzt doch einmal aus weil es so gut auf meine eigene Frage passt.
Ist es korrekt das egal welche Datenstruktur, Datengrösse meine Daten haben es kein Mehraufwand ist für Matlab wenn ich die Daten zwischen Funktionen hin und her schicke?
z.B. ich nehme ein 1GB Cell-Array und übergebe es einer Funktion. Dies ist genauso gut wie eine einzelne Variable mit 1MB Cell-Array oder Table?
Danke
Gruss
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.05.2019, 14:58
Titel:
|
|
Hallo,
Zitat: |
Ist es korrekt das egal welche Datenstruktur, Datengrösse meine Daten haben es kein Mehraufwand ist für Matlab wenn ich die Daten zwischen Funktionen hin und her schicke? |
Solange die Daten in der Funktion nicht verändert werden: ja.
Stichpunkte sind copy-on-write und in-place optimization.
Zitat: |
z.B. ich nehme ein 1GB Cell-Array und übergebe es einer Funktion. Dies ist genauso gut wie eine einzelne Variable mit 1MB Cell-Array oder Table? |
Abgesehen davon dass 1 GB halt etwas mehr als 1000 Mal so viel ist wie 1 MB: ja.
Du kannst das auch überprüfen, indem du den Task Manager öffnest und dann im Debugger zeilenweise durch den Code gehst.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|