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

Cell-Arrays unglaublich langsam

 

Mircode
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 06.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.03.2011, 14:40     Titel: Cell-Arrays unglaublich langsam
  Antworten mit Zitat      
Hallo! Ich bin bei einer Analyse mit dem Profiler darauf gestoßen, dass die Verwendung von Cell-Arrays wohl das Problem in meinem Programm war. Daher habe ich mal eine Messung durchgeführt:

Code:

a=[1,2];
c={1,2};
n=1e6;

disp('---------------------------------------')

disp('array reading:')
tic;
for i=1:n
   a(2);
end
ta=toc;
disp(ta)

disp('cell reading:')
tic;
for i=1:n
   c(2);
end;
tc=toc;
disp(tc)
disp('-> factor slower than array reading:')
disp(tc/ta)

disp('cell content reading:')
tic;
for i=1:n
   c{2};
end;
tc2=toc;
disp(tc2)
disp('-> factor slower than array reading:')
disp(tc2/ta)

disp('array writing:')
tic;
for i=1:n
   a(2)=1;
end
ta=toc;
disp(ta)

disp('cell writing:')
tic;
for i=1:n
   c(2)={1};
end;
tc=toc;
disp(tc)
disp('-> factor slower than array writing:')
disp(tc/ta)

disp('cell content writing:')
tic;
for i=1:n
   c{2}=1;
end;
tc2=toc;
disp(tc2)
disp('-> factor slower than array writing:')
disp(tc2/ta)
 


und die Resultate sind erschütternd:

array reading:
0.0429

cell reading:
0.7746

-> factor slower than array reading:
18.0547

cell content reading:
2.1214

-> factor slower than array reading:
49.4479

array writing:
0.0703

cell writing:
0.4398

-> factor slower than array writing:
6.2564

cell content writing:
0.1871

-> factor slower than array writing:
2.6613

Wie aussagekräftig meine Tests sind, kann ich nicht beurteilen. For-Schleifen und der Rest dauern sicherlich auch ein bisschen. Trotzdem haut mich das Ergebnis um. Faktor 50!? Beim Lesen?! Faktor 2 könnte ich verstehen, weil vielleicht einmal mehr einem Zeiger gefolgt werden muss oder so. Aber das...

Eigentlich habe ich nicht wirklich eine Frage. Wollte nur darauf aufmerksam machen. Ich fand Cell-Arrays bisher unglaublich nützlich, werde sie jetzt wohl aber schon bei minimalen Performance-Ansprüchen vermeiden.

MfG,
Mirko
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 - 2025 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.