Ressourcen schonen

  • Ressourcen schonen

    Gibt es Aussagen oder Feststellungen über den Ressourcenverbrauch (Rechnenzeit) beim verwenden unterschiedlicher Kommunikationstechniken zwischen Objekten.

    Oft führen ja mehrere Wege nach Rom/Köln um z.B. Inhalt in ein TextView zu bekommen.
    Brauchen bindings da viel mehr "Kraft" als z.B. die direkte Verknüpfung über ein Outlet.

    Ich denke da an Positions- und Zeitanzeigen welche über ein NSTimer schnell wiederholend upgedated werden.

    Einmal auf den Geschmack der Bindings gekommen, will man ja immer mehr über solche lösen. Aber vielleicht gibt es ja auch Grundsätze, wo dies gerade aus Performance-Gründen nicht zu empfehlen ist.
    Und bitte nicht wieder mit der Kristallkugel argumentieren :)

    Gruss, Oliver
  • Nein, nicht Kristallkugel. Messen!

    Performance kann man heute nur optimieren, in dem man Schwachstellen sucht. Sich vorher zu überlegen, was man machen könnte hilft nur sehr bedingt

    Alex
    The only thing that really worried me was the ether.
  • RE: Ressourcen schonen

    Premature optimization is the root of all evil (Donald Knuth)

    Vorher zu wissen, was später langsam wird, ist eine Klassenmethode von NSKristallkugel. (Tom9811)

    Soll heißen: Du machst dir damit dein Programm kaputt und am Ende hast du nicht einmal etwas davon.

    Übrigens gibt es intelligentere Optimierungsmethoden als den Verzicht auf Technologien.

    @below: Mit dir spreche ich heute nicht bis 22.00 Uhr. Danach willst du nicht mehr mit mir sprechen.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: Ressourcen schonen

    Belows und Toms aussagen unterschreibe ich bis zu einem bestimmten Punkt: Optimierung und Feinschliff lässt sich außerhalb von Spielzeugbeispielen nur noch so schwer vorausplanen, dass es unsinnig ist, sowas ohne Shark o.ä. anzugehen. Das heißt aber nicht, dass sich nichts planen lässt. Ein sauberes Design ist oft die beste Performancemaßnahme: Ein Datenmodell, dessen Fluss es erlaubt, nur das Notwendige zu berechnen und nicht unnötig Zeit mit Polling etc. zu verplempern.

    Die Engstellen liegen sicherlich in jedem Fall anders, aber grob habe ich bei meinen Projekten abseits des Tunings am Schluss immer wieder zwei Zeitfresser gefunden: Redundante Berechnungen und überflüssige GUI-Sachen.

    Warum ich das erwähne? Du sprachst von Timer, die oft wiederholend etwas mit TextViews tun. Wenn a) massiv Daten über Timer gepollt werden und b) textuelle Angaben schneller geändert werden als ein Nutzer sie lesen kann, komme ich ins Grübeln, ob da nicht an anderer Stelle der Hase im Pfeffer liegt. Die Frage "To bind or not to bind" ist da eher zweitrangig. Allerdings kenne ich Deine Anwendung nicht, kann auch gut sein, dass ich komplett falsch liege.
    Multigrad - 360°-Produktfotografie für den Mac
  • RE: Ressourcen schonen

    Original von mattik
    Du sprachst von Timer, die oft wiederholend etwas mit TextViews tun. Wenn a) massiv Daten über Timer gepollt werden und b) textuelle Angaben schneller geändert werden als ein Nutzer sie lesen kann, komme ich ins Grübeln, ob da nicht an anderer Stelle der Hase im Pfeffer liegt. Die Frage "To bind or not to bind" ist da eher zweitrangig. Allerdings kenne ich Deine Anwendung nicht, kann auch gut sein, dass ich komplett falsch liege.

    Wird bei einem NSTableView der über Bindings gefüttert wird bei einer Änderung eines Wertes nicht nur die entsprechende NSCell zu dieser Änderung neu gezeichnet?

    Bei Verwendung einer NSTableDataSource müsste man doch ein reloadData auf den NSTableView triggern, oder?
  • Zu Antwort 1+2
    Ich habe es gewusst, dass dieses Zitat wieder kommt.
    Ich war immer der Ansicht, dass Entwickler euren Formates, gewohnt sind, mal ein bisschen zickzack und vor und zurück zu denken, ohne immer zu sagen, der Staat wird schon wissen, was richtig für mich ist. Und zudem könnte ich mir vorstellen, dass genau hier der Staat (Apple) auch eine Entscheidung getroffen hat, nur kann ich sie nicht finden.

    Nein, nicht Kristallkugel. Messen!

    Genau. Und ich hatte ja nur die Frage ob jemand schon Feststellungen dieser Art gemacht hat. Ich denke, das meine Performance-Frage nicht spezialisiert ist, sondern sehr allgemein.

    Und zudem ist war dies keine Frage zur vorzeitigen Optimierung, sondern eine Frage nach schon gemachten Erfahrungen. Hat das nicht mit Kultur zu tun? Es scheint einfach so, als ob das Thema Geschwindigkeit ein verbotenes Wort ist, und dann kommt bei euch das Knuth-Schildchen.

    Aus Protest habe ich DAS Buch jetzt unter einem Stapel aus
    Conrad-Katalog
    Einstieg in C++
    Einsteigen in Xcode
    gelegt.
    Und zur Strafe alle alten Data-Becker nix-tauge-Bücher oben drauf gelegt.
    Und zur Dekoration oben auf noch "Amiga C in Beispielen".
    Und wenn ich die Seite mit der Kristallkugel finde, reisse ich sie raus.

    An die Arbeit.
    Messstation Brienz
    Gruss, Oliver
  • RE: Ressourcen schonen

    Original von mattik
    Du sprachst von Timer, die oft wiederholend etwas mit TextViews tun.....

    In einem konkreten Fall geht es um die Positionsanzeige in einem Musik-Sequenzer ähnlichen Programm.
    Da wird die Position über die Wellenform gezeichnet (OpenGL mit gebufferter Texture, dank dir), und zum anderen eben die Zeit-Anzeige mit TextField. (Oben habe ich fälschlicherweise TextView geschrieben).
    Über die Zeitintervalle könnte man sicher noch diskutieren. Die 100tel sind so oder so nicht zu lesen...

    Gruss, Oliver
  • Original von Tom9811
    Es ist kein Zeichen von Format, zickzack zu denken. Es ist ein Zeichen von ungeordneten Denken.


    Ok, dann sind wir da auf verschiedenen Dampfern.
    Für mich haben die grössten Genies Spass gehabt zickzack zu denken, und haben eben kompensierend die Denkgeschwindigkeit erhöht, so wie Kinder die beim geordneten Sonntagsspaziergang immer einige Kilometer mehr zurück legen, um damit auch mehr Erfahrungen machen als ihre braven Eltern.
    In der Musik würde ich einen geordneten Denker einen Langweiler nennen.
    Und das bist du ja nicht.

    Gruss, Oliver
  • Jetzt wird es aber gefährlich.

    @mattik: Du hast natürlich recht, bestimmte Dinge lassen sich durchaus planen und mit gutem Design von Anfang an verbessern.

    Zu den meisten GUI Themen habe ich aber keine wirkliche Performance-Erfahrung. Bei meinen Projekten wartet das Interface normalerweise angestrengt darauf, das der Benutzer endlich mal wieder etwas macht.

    Aber der theoretische Informatiker würde ja zu Bindings vs. keine Bindings sagen, dass sich da sowieso nur maximal ein linearer Faktor rausholen lässt, die Geschichte von der Komplexität her also gleich bleibt ;)

    Alex
    The only thing that really worried me was the ether.
  • Wenn schnelles Denken zum Zickzack-Kurs führt, ist es kein Zeichen von Genie, sondern von ungeordnetem Blödsinn.

    +++

    BTW: Von welchem Performance-Problem an welcher Stelle genau sprichst du eigentlich? Oder sind Pauschalbehauptungen auch ein Zeichen von Genie?
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: Ressourcen schonen

    Original von MCDan
    Wird bei einem NSTableView der über Bindings gefüttert wird bei einer Änderung eines Wertes nicht nur die entsprechende NSCell zu dieser Änderung neu gezeichnet?
    Bei Verwendung einer NSTableDataSource müsste man doch ein reloadData auf den NSTableView triggern, oder?

    Ich mache mir weniger Gedanken über das neu zeichnen. Mehr darüber ob bei recht stumpfsinnigem Updaten eines Wertes, ein Binding der richtige Stil ist. Der Timer muss in meinem Fall da sein, also könnte er dem Textfield einfach den Wert reinschreiben.
  • RE: Ressourcen schonen

    "Das heißt aber nicht, dass sich nichts planen lässt. Ein sauberes Design ist oft die beste Performancemaßnahme:"
    Genau das meinte ich: Es gibt bessere Strategien zum Performance-Gewinn, als auf eine Technik zu verzichten.

    Und das meint auch Knuth: Er ist sicherlich *für* den Ansatz mit einem guten Design, welches nachher punktuell verbessert werden kann.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von Tom9811
    Wenn schnelles Denken zum Zickzack-Kurs führt, ist es kein Zeichen von Genie, sondern von ungeordnetem Blödsinn.

    Ich sage nicht es führt zu Zickzack, sondern es ist ein bewusstes ausschwärmen in alle Richtungen.
    Aber lassen wir dass besser, wir müssen sonnst in ein anderes Forum wechseln.
  • Original von Tom9811
    Okay, ich hatte die von dir in die Diskussion geworfene Buchstabenkkombination "zickzack" als "zickzack" gelesen.


    Inhaltlich meinte in dem Fall
    zickzack = ausschwärmen in alle Richtungen
    und damit
    bewusstes zickzack , was mir dann aber zu abstrakt aussah.
    Aber du darfst das letzte Wort haben.
  • Original von below
    Bei meinen Projekten wartet das Interface normalerweise angestrengt darauf, das der Benutzer endlich mal wieder etwas macht.

    Bei mir ist es gerade umgekehrt.
    Bei mir wartet der User angestrengt darauf, ob die Kiste endlich wieder Ruhe gibt :)
  • "Aber du darfst das letzte Wort haben."
    Jetzt einmal ernsthaft: Was soll das?

    Du stellst eine Frage. Wir bemühen uns, darauf zu antworten und dir zu helfen. Dir passen die Antworten nicht. Darauf kommt:

    "Aber du darfst das letzte Wort haben."

    Danke für die Diskussion. Bei der nächsten Frage lasse ich mich ganz bestimmt nicht auf eine Diskussion mit dir ein. Ich kann meine Zeit sinnloser verschwenden.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von Tom9811
    "Aber du darfst das letzte Wort haben."
    Jetzt einmal ernsthaft: Was soll das?

    Entschuldige. Ich dachte dieses Nebengeplänkel wäre spassiger Natur.
    Die Diskussion hatte ja zwei Pfade, einen Sachbezogenen und den mit den "Denktechniken".
    Und da du meist am Schluss die bessere Antwort hast, war dies die Aufforderung zu dieser.
    Ich hoffe auf Frieden und bitte um erneute Diskussionsbereitschaft.
    Gruss, Oliver