Programm beschleunigen

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Lukas.

    Absolut nicht. In einer Liste kann man nicht schneller suchen, nur weil sie sich kürzer implementieren lässt als ein AVL-Baum.
    Wenn man nicht weiß, was man durch das Kürzen bewirkt, sollte man es lassen. Sowas kann der Compiler oft viel besser "wegoptimieren".
    Nope. Stichwort optimieren.

    d.h. kürzerer Code muss nicht der bessere sein. Es kommt darauf an, wie performant das ganze ist.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    @Hacker-hack: lolno

    Wir wissen alle schon, dass dein Programm ziemlicher Schrott ist, das wurde im Thread ja schon auseinandergerissen. Zumal es bei fehlenden Adminrechten hilflos crasht, bevor es irgendwas machen würde (was es offenbar auch nicht macht).

    btw, eine zweite unsichtbare Form, die im Hintergrund agiert? Ja, sehr performant.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Ich check das nicht was Hacker meinte...
    Wenn du einen Rucksack (Form1) mit Steinen hast in dem 15 Liter reinpassen, und an diesen einen Rucksack einen weiteren mit 15 Liter ranhängst (in deiner Aussage Form2 und visible = FALSE), wie willst du dann schneller werden?
    Versteh ich dich richtig? Wenn nicht dann sorry...

    Grüßle Marco

    MarcoIT schrieb:

    Ich check das nicht was Hacker meinte...

    Damit stehst du zwar nicht alleine, aber grundsätzlich dürfte das komplett irrelevant sein, da der bezeichnete User vom "optimieren" vermutlich ebensoviel Ahnung hat, wie ein Goldfisch von der Wüste und somit zum aktuellen thread-Thema wohl kaum etwas sinnvolles beitragen kann.
    Der direkte Sinn von Dlls ist nicht GeschwindigkeitsOptimierung, sondern Code wiederverwendbar zu machen.

    Beim Coden ist das Stieren auf die Geschwindigkeit in hohem Maße irrelevant. 99%ige Priorität haben transparente Anwendungs-Struktur und Code-Aufteilung.
    Also Wartbarkeit im weitesten Sinne.
    In dem Zusammenhang hat auch das Anlegen von Dll-Projekten seinen Sinn.

    Gut wartbarer Code ist normalerweise gleichzeitig auch äußerst performant - das ergibt sich wie von selbst.
    Und zeigen sich dann in der Praxis wirklich Performance-Engpässe, so ist die gute Wartbarkeit auch der Grund, warum der Performance-Engpass schnell identifiziert werden kann, und mit geringem Aufwand behoben.

    Das ist die Vorgehensweise, um schnelle Progs zu entwickeln, nicht Dlls rein oder raus oder sonstige irrelevanten Überlegungen.

    Programme, die Dlls verwenden sind oft deshalb schneller, weil Dlls auf wiederverwendbarkeit ausgelegt sind. Dll-Code wird daher meist besonders sorgfältig entwickelt, insbesondere unter Verwendung der bestgeeigneten Algorithmen.
    Deshalb sind sie schnell, nicht weils Dlls sind.

    Hiernoch die Rules Of Optimization - hervorzuheben die Jackson-Formulierung.
    Bevor Du guten / schnellen Code schreiben kannst, musst Du überhaupt Code schreiben können. Und Du musst es wollen.
    Wenn Du es nicht willst, ist Dir Dein Output im Prinzip egal. Wenn es funktioniert, ist es fertig.
    Hier erst kannst Du anfangen, Dir über Optimierung Gedanken zu machen, es sei denn, im Designguide oder Pflichtenheft steht drin, welcher Algorithmus zu verwenden ist.
    Bei Mathematik und Bildverarbeitung ist da nicht viel zu holen, das gibt es fast alles schon.
    Irgendwann kommst Du an den Punkt, da solltest Du über Parallelverarbeitung nachdenken, das bringt auf einem 8-Core dann tatsächlich Punkte. Wenn Du es willst. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Glubschi43 schrieb:

    Wird die Ausführung durch Nutzung von DLLs beschleunigt oder verlangsamt?

    Native DLLs verlangsamen im Extremfall sehr ...
    Das liegt daran, dass per default beim Starten eines Threads in der Anwendung JEDE geladene DLL über den Threadstart informiert wird. Eine DLL kann sich davon zwar "abmelden", aber die wenigsten tun das. Managed DLLs zeigen dieses Verhalten nicht.

    Glubschi43 schrieb:

    und wie muss so ein performanter code aussehen

    Die Performance-Frage ist irrelevant! (sagte ich das nicht bereits?)

    Die Frage muß lauten: Wie sieht guter Code aus? Weil guter Code ist naturgemäß performant, und falls ausnahmweise nicht, können nur in gutem Code die Performance-Engpässe mit angemessenem Aufwand beseitigt werden. (mit unangemessenem Aufwand kann man u.U. auch in GurkenCode Engpässe beseitigen, aber oft gehts bei Gurkencode auch garnet).
    Die Frage nach gutem Code ist aber die Kernfrage der Informatik Programmierwissenschaft überhaupt - du erwartest jetzt hier nicht die Antwort darauf, oder?

    2 Hinweise: [VB.NET] Beispiele für guten und schlechten Code (Stil)
    besser: CleanCodeDeveloper

    Aber im Grunde beschäftigt sich jedes Programmierbuch, jedes Tutorial und jeder Post in jedem Programmierforum mit dieser Frage.

    /CloseRequest

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Lukas schrieb:

    Wir wissen alle schon, dass dein Programm ziemlicher Schrott ist, das wurde im Thread ja schon auseinandergerissen. Zumal es bei fehlenden Adminrechten hilflos crasht, bevor es irgendwas machen würde (was es offenbar auch nicht macht).

    btw, eine zweite unsichtbare Form, die im Hintergrund agiert? Ja, sehr performant.

    Bein WRT3 MACHT DAS ca. 2sek aus und durch das das Programm ziemlicher Schrott ist stimmt nicht.


    Der einzige Nachteil ist das Die Befehle der Form2 erst ca. eine Sekunde später ausgeführt werden und darum Funktionier das nicht bei sofort sichtbaren stellen.


    **WERBUNG ENTFERNT**



    Edit by LaMa5:
    - Beitrag wurde teilweise gelöscht.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()

    @Hacker-hack

    Ist doch egal. Es geht ums Prinzip, nicht darum: "ja, ich hab zwar ne zweite Form, die kein Schwein sieht, die macht im Hintergrund alles, passt aber soweit". Bei kleinen Sachen muss dich sowas nicht interessieren, aber bei größeren Anwendungen, welche vllt. mit Datensätzen o.ä. arbeiten, kommt es sehr wohl darauf an, wie performant das ganze ist. Wobei ich finde, das zwei Sekunden auf die Dauer gesehen bereits viel zu lang sind.

    btw hör mal auf mit deiner Drecks Werbung in jedem Beitrag.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.