WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Speicherbedarf und Performance bei Variablenmitgabe in Funkt

 

MatLabNooB
Forum-Guru

Forum-Guru


Beiträge: 262
Anmeldedatum: 27.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2010, 16:49     Titel: Speicherbedarf und Performance bei Variablenmitgabe in Funkt
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.07.2010, 22:04     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Dattelkopf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2019, 13:52     Titel:
  Antworten mit Zitat      
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

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.05.2019, 14:58     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.