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

Rechenzeit

 

JohnnyCash
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 22.07.09
Wohnort: ---
Version: 2009b
     Beitrag Verfasst am: 10.01.2010, 17:28     Titel: Rechenzeit
  Antworten mit Zitat      
Hey!

Mich würde mal Interessieren ob es in Matlab einen Befehl bzw Funktion gibt, die die Rechenzeit eines Programms ermittelt?

In meinem Fall soll das so funtkionieren, das mir die Rechenzeit(en) eines bzw mehrerer Unterprogramme im Hauptprogramm mit ausgegeben werden.

Ist das irgendwie möglich?

Grüße
Johnny
Private Nachricht senden Benutzer-Profile anzeigen


Tim
Forum-Century

Forum-Century



Beiträge: 140
Anmeldedatum: 03.11.07
Wohnort: Stuttgart
Version: 2011b+aktuellstes Release
     Beitrag Verfasst am: 10.01.2010, 17:40     Titel:
  Antworten mit Zitat      
Code:


Nachtrag: Das ergibt allerdings die Zeit die zum Ausführen gebrauch wurde, nicht die Rechenzeit. Sprich wenn irgendeine Routine auf Festplatte oder gar Usereingabe wartet, kommt das mit in die Zeit rein.

Bei weiterer Überlegung fällt mir ein, dass der Matlab Profiler für dich sogar interessanter sein könnte Wink

Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
JohnnyCash
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 22.07.09
Wohnort: ---
Version: 2009b
     Beitrag Verfasst am: 10.01.2010, 17:50     Titel:
  Antworten mit Zitat      
ah okay ich schau mir "profile" mal an....

hab eben was in der Help von "cputime" gelesen, schätze aber mal dass ich damit nicht die einzelnen Rechenzeit von den Unterprogramme heraus bekomm....

dank dir!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.01.2010, 18:11     Titel:
  Antworten mit Zitat      
Hallo,

am bequemsten ist die Nutzung des Profiler über die Oberfläche.
http://www.mathworks.com/access/hel.....nv/f9-17018.html#f9-17087

Kurzvariante:
1. entweder das Profiler-Icon anklicken oder folgendes eingeben:
Code:

2. das zu analysierende Skript oder den Funktionsaufruf wie vom Command Window aus oben eingeben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Maxi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.05.2012, 14:17     Titel:
  Antworten mit Zitat      
Hallo,

ich konnte bisher leider noch keine passende Lösung zu meiner Problemstellung finden.

Umgebung: Ich habe eine GUI entwickelt, von welcher aus verschiedene m-Files angestoßen werden können (über einfache Radiobuttons).

Ziel: der User soll über den Zeitaufwand (welcher für die Ausführung der m-Files notwendig ist) schon im Vorfeld informiert werden (damit er also schon vor Fertigstellung weis, ob es sich für einen Kaffee lohnt oder nicht Very Happy )

Umsetzung: Welche Möglichkeiten gibt es zur Umsetzung? Eine Idee wäre, jedes einzelne m-File im Rahmen der Entwicklung zu "messen" (über tic toc) und je nach Auswahl des Users den Zeitaufwand aufzuaddieren.

Problem: Was wenn der User einfach gesagt eine alte "Krücke" als Rechner verwendet und dafür 10 mal so lange braucht wie ich während der Entwicklung?
Was wenn sich Messschriebe (welche in manchen m-Files eingelesen werden) in ihrer Größe unterscheiden?

Gibt es überhaupt eine Möglichkeit das "sinnvoll" umzusetzen??

Vielen Dank und Grüße!
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 16.05.2012, 14:51     Titel:
  Antworten mit Zitat      
Meine Gedanken dazu:

Wenn nur wenige Algorithmen verwendet werden, dann ist das bestimmt machbar, aber wenn es zu viele Algorithmen und Optionen gibt wird es uferlos.

Meine Idee ist es beim Erstaufruf des GUis den Rechner zu "benchmarken". Das hängt natürlich wieder von den Algorithmen ab. Der Benchmark sollte Operationen haben die ähnlich sind.

Daraus ergibt sich dann ein Faktor zwischen Anwendermaschine und Entwicklungsmaschine und es kann skalliert werden.

Alternativen: Wenn Schleifen benutzt werden und der Hauptteil der Rechenzeit dort verbraten wird: Die Laufvariable zur Abschätzung hernehmen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.05.2012, 22:50     Titel:
  Antworten mit Zitat      
Hallo Maxi,

Schau Dir mal die Prograssbars an, die von kommerziellen Programmen angezeigt werden: Mal werden die ersten 99% der Bar in der ersten Sekunde gezeichnet, und das letzte Prozent benötigt viele Minuten. Dann gibt es noch die Bars, die nach einiger Zeit wieder kürzer werden.

Das Problem der Laufzeit-Abschätzung ist also offenbar schwierig zu lösen. Mal ist die Festplatte der begrenzende Faktor, weil Arrays im virtuellen Speicher geswapt werden müssen und im Hintergrund die Platten-Defragmentierung gestartet wurde. Oder der Viren-Scanner bremst die CPU unerwartet aus.

Ich würde bei Progressbars bleiben, da die Nutzer bereits an die Einschränkungen und Ungenauigkeiten gewöhnt sind.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Maxi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2012, 13:16     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank für die guten Tips!

Ich finde die Benchmark-Idee eine recht elegante Sache Wink ich werds ausprobieren!
Ansonsten werde ich wohl doch auf die gute alte Waitbar zurückgreifen. Dann hat man zumindest das Gefühl die restliche Dauer im Auge zu haben...

Gibt es eigentlich die Möglichkeit, Matlab mehr Ressourcen für die Berechnung zur Verfügung zu stellen?
Ich kenne das aus dem Studium bei FEM-Berechnungen. Standartmäßig ist es da so festgelegt, dass nur ein CPU-Kern zur Berechnung genutzt wird. Durch eine kleine Einstellung kann man die Berechnung dann auf mehrere aufteilen. Gibts sowas auch bei Matlab?

Viele Grüße!
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 22.05.2012, 09:07     Titel:
  Antworten mit Zitat      
Es gibt verschiedene Möglichkeiten, die aber vom Release und den verfügbaren Produkten abhängen. Und zudem hängt es von der Applikation ab. Das ist eher ein Fall für eine Kontaktaufnahme mit dem Technischen Support von MathWorks.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.