1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Was passiert wirklich bei Apfel+H?

Dieses Thema im Forum "macOS & OS X" wurde erstellt von son yu, 12.10.05.

  1. son yu

    son yu Meraner

    Dabei seit:
    16.05.04
    Beiträge:
    229
    hallo,

    wie im threadtitel zu lesen beschäftigt mich die frage schon seit längeren.
    Was macht OS X mit dem Programm bei Apfel+H (Programm ausblenden)?
    Wieso wird es nur ausgeblendet und nicht etwaige prozessorlastige threads gestoppt?
    das stoppen eines programms im hintergrund wäre ja gerade für die mobilanwender ein wirklicher segen.

    schöne grüße
     
  2. andi*h

    andi*h Gast

    hello,

    weil es wahrscheinlich schwierig wird zu realisieren, ein "gestoptes" programm anschließend wieder auf den neusten stand zu bringen. ich denke, du wirst wohl damit leben müssen oder einfach speichern, schließen und wieder öffnen wenn´s weitergehen kann/soll.

    lg,
    andi
     
  3. son yu

    son yu Meraner

    Dabei seit:
    16.05.04
    Beiträge:
    229
    leuchtet mir irgendwie ein, nur schon mal mitbekommen das programme die längere zeit im hintergrund waren eine kurze zeitverzögerung benötigen um wieder voll einsatzbereit zu sein?

    schöne grüße
     
  4. zause

    zause Martini

    Dabei seit:
    27.07.05
    Beiträge:
    655
  5. andi*h

    andi*h Gast

    hello,

    naja, nicht wirklich ...
    aber dann wird wahrscheinlich doch nicht soviel leistung verbraucht als wenn es 100%ig laufen würde, oder!? dann siehst man ja, der mac versucht also von allein, nicht unnötige reserven auszuschöpfen und apfel+h ist nur für´s auge da ...

    lg,
    andi
     
  6. son yu

    son yu Meraner

    Dabei seit:
    16.05.04
    Beiträge:
    229
    ja aber was macht os x nun wirklich mit dem programm wenn ich es ausblende?
    wird der Arbeitsspeicher ausgelagert?

    schöne grüße
     
  7. andi*h

    andi*h Gast

    hello,

    was der name schon sagt....h wie hide,
    einfach nur verstecken (freie menüleiste, freies dock und auch nichts auf dem desktop).

    lg,
    andi
     
  8. groove-i.d

    groove-i.d Grünapfel

    Dabei seit:
    10.01.05
    Beiträge:
    7.085
    meinst Du?
    ich spekuliere einfach mal drauf los:
    beim aktivieren des ruhezustandes wird ja auch alles "gekappt" und beim beenden wieder so aktiviert, als wenn nix gewesen wäre.
    ist ein spontaner einfall. also nicht gleich mit dem fallbeil anklopfen. :-D
     
  9. son yu

    son yu Meraner

    Dabei seit:
    16.05.04
    Beiträge:
    229
    genau das will ich ja mal wissen, warum?
    wer möchte nicht sein system verstehen?

    schöne grüße
     
  10. andi*h

    andi*h Gast

    hello,

    hmm, das mit dem ruhezustand stimmt natürlich ....
    ich habe ja aber auch "wahrscheinlich" geschrieben, genau wie son yu "irgendwie" schrieb.

    waren also alles nichts als spekulationen ;)

    lg,
    andi
     
  11. groove-i.d

    groove-i.d Grünapfel

    Dabei seit:
    10.01.05
    Beiträge:
    7.085
    uns bleibt wohl nix anderes übrig, als weiter zu spekulieren.
    nur gehen mir im augenblick die spekulatius aus.
     
  12. Trapper

    Trapper Boskop

    Dabei seit:
    12.05.05
    Beiträge:
    213
    Wegen dem "Stoppen" von Programmen: Das passiert im Betrieb laufend. Da die Anzahl der CPUs im System meist viel kleiner ist als die Anzahl laufender Prozesse wird sog. Timesharing betrieben. Jeder Prozess bekommt die CPU eine Zeitscheibe lang zugeteilt. Entweder gibt der Prozess in diesem Zeitraum freiwillig die CPU wieder ab, weil er z.B. gerade einen IO-Auftrag abgesetzt hat, oder ihm wird die CPU "gewaltsam" entzogen. Der Prozesszustand wird dabei im Prozesskontrollblock (PCB)gesichert (also die Belegung der CPU-Register usw).
    Kommt der Prozess später wieder an die Reihe, wird mit Hilfe des PCB sein Zustand wiederhergestellt. Der Prozess selbst bekommt von diesem Prozedere nichts mit.

    Wollte man also einen Prozess einfach im Betrieb stoppen, müsste man ihn lediglich von der CPU-Zuteilung ausschließen.
     
  13. astraub

    astraub Champagner Reinette

    Dabei seit:
    17.06.04
    Beiträge:
    2.651
    Hallo,

    also bei mir arbeitet z.B. Mail weiter im Hintergrund. Es meldet sich dann (dank Erweiterung Mailenhancer) sobald neue Mail eingetroffen ist. Auch iTunes läuft natürlich im Hintergrund weiter ... Es sieht für mich daher ganz so aus, als ob lediglich das User-Interface weggeblendet wird.

    Gruss
    Andreas
     
  14. moornebel

    moornebel Pomme Miel

    Dabei seit:
    13.04.04
    Beiträge:
    1.488
    Mit Horse Menu kannst Du einzelne Applikationen anhalten.

    Gruss
    moornebel
     
  15. mullzk

    mullzk Linsenhofener Sämling

    Dabei seit:
    04.01.04
    Beiträge:
    2.529
    das stoppen von applikationen ist ja das eine (und programme, mit denen man das machen kann, wurden ja bereits erwähnt). aber apfel-h ist dazu da, dass ein programm, egal was es tut, einfach nicht die sicht zudeckt. ich will, dass mail die mails abruft, auch wenn es nirgends da ist. dass eyetv sendungen aufzeichnet, auch wenn es sie gerade noch nicht anzeigen kann. oder dass xcode kompiliert und ich endlich mal wieder den desktop sehen kann, ohne dass ich 50 fenster ins dock schieben muss....

    diese funktion von apfel-h ist nötig, weil os x im gegensatz zu windows ein dokumentbasiertes gui hat (auch wenn windows nun auch immer mehr in richtung dokumentbasiert geht). wenn du ein fenster ins dock legst, geht nur das eine dokument dorthin, bei windows verzieht (resp. verziehte) sich gerade das gesamte programm samt seinen offenen dokumenten dorthin. apfel-h erlaubt dir, alles aufs mal wegzuknallen, aber es ist eine prozedur zum freischaufeln des desktops, nicht der ressourcen...

    apfel-h ist übrigens direkt nach expose das ding, das ich an os x am meisten schätze. bitte ja nie irgendwas daran ändern....
     
    1 Person gefällt das.
  16. Trapper

    Trapper Boskop

    Dabei seit:
    12.05.05
    Beiträge:
    213
    In Zeiten von Hochleistungsrechnern mit 512 und mehr CPUs ist das nicht so schwer vorzustellen. (Ich nehme die Leerlaufprozesse mal aus).
     
  17. tr_

    tr_ Fuji

    Dabei seit:
    18.07.05
    Beiträge:
    37
    Nun, was *genau* passiert würde mich auch interessieren.

    Was man aber auf jeden Fall sagen kann, ist, dass Apfel-H ein Segen ist, wenn es darum geht, "GUI-intensive" Prozesse einfach wegzuschalten. Das kann man leicht überprüfen, indem man zB. Azureus.app öffnet und in der GUI einiges passieren lässt. Blendet man Azureus aus, geht die Prozessorleistung kontinuierlich deutlich herunter ("top -au", Activity Monitor.app, watch o.ä. laufen lassen und nach dem Programmnamen filtern).

    Auch der schöne Fortschrittsbalken von OS X kann eine Bremse sein, zumindest auf meinem 1,2 Ghz-iBook mit ATI-Karte. Blendet man das entsprechende Fenster bzw. Programm aus (minimieren gilt nicht, nur Apfel-H), kann der Prozessor die Arbeit, die er eigentlich erledigen soll, viel schneller zu Ende bringen, da jeglicher zusätzlicher Grafikaufwand entfällt.

    Grüsse,
    Tomas
     
  18. mullzk

    mullzk Linsenhofener Sämling

    Dabei seit:
    04.01.04
    Beiträge:
    2.529
    sowie ich das in meinem cocoa-lernen begriffen habe, sieht es wie folgt aus. bei apfel-h werden die entsprechenden fenster in einen ausserhalb des vom monitor darzustellenden bereich verschoben. sie sind noch da, aber eben nicht in einem bereich, der angezeigt wird.
    performance-gewinne können daher wie folgt erfolgen:
    - der prozess, welcher all die fenster tatsächlich auf den grafikoutput generiert wird entlastet. jedes bild welches angezeit wird führt zu jeder menge berechnungen, zB bezüglich durchsichtigkeit, ob darunter oder darüber noch andere fenster dargestellt werden sollen und wenn ja, wie sich der einzelne pixel nun zusammensetz. os x hat extrem viele transparenzen (zB unterhalb eines menüs, auch wenn man es kaum sieht). bei nicht-quartz-extreme-fähigen grafikkarten ist dies cpu-arbeit.
    - bezüglich der applikationen werden (aber da bin ich nicht sicher) nicht alle delegate-methods à la windowShouldBeDrawn etc. aufgerufen. das kann entlasten...
    - vielleicht (obwohl ich nicht davon ausgehe) werden bei den NSView nicht mal mehr die refresh-funktionen angezeigt...
    je nachdem wie die applikation programmiert ist, könnte sich mit den letzten beiden mechanismen (so sie denn überhaupt zutreffen, insb. der letzte) massiv arbeit ersparen...
     
  19. tr_

    tr_ Fuji

    Dabei seit:
    18.07.05
    Beiträge:
    37
    Vielen Dank erstmal für deine fundierte oder jedenfalls fundiert klingende ;) Erklärung!

    aha, klingt interessant! reichlich seltsamer lösungsansatz, scheint aber simpel und gut zu funktionieren ;)

    QuartzExtreme hat sich zwar seit 10.2 sehr verbessert, aber irgendwie macht die CPU immer noch viel zu viel. Die Grafikkarte meines iBooks hat 32MB Ram und ist QuartzExtreme-fähig, dennoch kann man beobachten, dass sehr vieles nicht auf die Karte ausgelagert wird. Auf CoreImage (wohl mit einer anderen Grafikkarte ;) wiederum bin ich sehr gespannt; das scheint aber noch nicht ganz fertig zu sein.

    Zumindest das Java-Programm Azureus "friert" die letzte Anzeige vor Apfel-H ein. Aktiviert man das Fenster wieder, sieht man zunächst erstmal die alten Werte, und dann wird sprunghaft die Anzeige aktualisiert, beispielsweise der Fortschrittsbalken oder sowas. Beim Cocoa - Balken allerdings habe ich so etwas noch nie bemerkt.

    Grüsse,
    Tomas
     
  20. Trapper

    Trapper Boskop

    Dabei seit:
    12.05.05
    Beiträge:
    213
    Falls ein "Überangebot" an CPUs existiert, muss theoretisch kein Time-Sharing-Betrieb gefahren werden. Jeder Prozess hat "seine" CPU und kann diese beanspruchen solange er läuft. Die CPU muss einem Prozess nicht entzogen werden, da durch das "Überangebot" keine Konkurrenzsituation zwischen den Prozessen entsteht.
     

Diese Seite empfehlen