|
JohnnyCash |
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 22.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 10.01.2010, 17:28
Titel: Rechenzeit
|
|
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
|
|
|
|
|
Tim |
Forum-Century
|
|
Beiträge: 140
|
|
|
|
Anmeldedatum: 03.11.07
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: 2011b+aktuellstes Release
|
|
|
|
|
|
Verfasst am: 10.01.2010, 17:40
Titel:
|
|
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
|
|
|
JohnnyCash |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 57
|
|
|
|
Anmeldedatum: 22.07.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 10.01.2010, 17:50
Titel:
|
|
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!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.01.2010, 18:11
Titel:
|
|
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:
2. das zu analysierende Skript oder den Funktionsaufruf wie vom Command Window aus oben eingeben.
Grüße,
Harald
|
|
|
Maxi |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.05.2012, 14:17
Titel:
|
|
|
|
|
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 )
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
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 16.05.2012, 14:51
Titel:
|
|
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
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 17.05.2012, 22:50
Titel:
|
|
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
|
|
|
Maxi |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.05.2012, 13:16
Titel:
|
|
Hallo,
vielen Dank für die guten Tips!
Ich finde die Benchmark-Idee eine recht elegante Sache 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
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 22.05.2012, 09:07
Titel:
|
|
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
|
|
|
|
|
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.
|
|