Performanceproblem



  • Hi,

    zur Zeit programmiere ich ein Programm das verschiedene numerische Iterationen durchführt. Die Verfahren habe ich erst programmiert und in der Konsole getestet und anschließend in die für das Programm gehörige Oberfläche eingebunden. Dabei hat sich das Problem aufgetan, dass wenn ich eine Berechung/Iteration in der Konsole starte weniger als 1 sec gebraucht wird und mit den gleichen Startbedingungen in der Oberfläche 50 Sekunden. Mir ist irgendwie unklar wieso die Oberfläche so massiv langsamer ist und vorallem wie man das beheben kann, denn ansich brauche ich möglichst viel Rechenleistung für die Iterationen.

    - Ixtana



  • Naja, und was erwartest Du jetzt ? Kein Code, keine details - da reicht die Information nicht mal zum raten.

    Verwende doch einfach einen Profiler. Du kannst ja z.B. die Trial von Redgate verwenden (http://www.red-gate.com/products/ants_profiler/index.htm) oder andere Profilerprodukte die ggf. ne Testversion anbieten.

    Der gleiche Code sollte unter Console als auch unter GUI gleich laufen. Es würde also nahe liegen, das Dein Problem irgendwo in der Anbindung an die GUI auftreten.



  • Hi,

    ich habe den Fehler gerade durch Zufall entdeckt. Und zwar hatte ich in der Methode noch 2 Ausgaben an die Konsole die ich vergessen habe zu entfernen.
    Jetzt funktioniert es wie es soll.

    Ich hätte aber nochmal eine andere Frage. Manchmal kann der Fall auftreten das eine Iteration sehr sehr lange dauert und es sinnvoll wäre sie durch z.B. klicken auf einen Stop Button zu beenden, ohne dass das ganze Programm beendet. Wie kann man sowas Prinzipiell realisieren?

    -Ixtana



  • Lässt du die Berechnung in nem BackgroundWorker laufen?
    Wie sich das dabei realisieren lässt steht in der msdn mit Berechnung von fibonacci-Zahlen:
    http://msdn2.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx



  • Hallo

    Dazu solltest du dir mal Threads anschauen.

    chrische


Anmelden zum Antworten