-
78 zusätzliche Kontextwechsel
Autor: FaLLoC 06.12.13 - 11:34
Bei mir laufen gerade 86 Prozesse. Davon ein Firefox-Prozess mit zwei Fensten (42 Tabs, 37 Tabs). Für jeden Tab nen eigenen Prozess macht aus 86 Prozessen 156 Prozesse. Das sind mal eben doppelt so viele Kontextwechsel.
Alleine dass Firefox bisher nicht diesen Multi-Prozess-Unfug mitmachte war für mich ein Grund bei Firefox zu bleiben.
--
FaLLoC -
Re: 78 zusätzliche Kontextwechsel
Autor: Anonymer Nutzer 06.12.13 - 11:57
Und weil Kontextswitches so teuer sind, wird dein System deutlich langsamer? Du kannst ja unter Linux Gruppen bilden.
Oder guckst dir ne CPU raus die das in Hardware macht wie z.b. Intel CPUs. -
Re: 78 zusätzliche Kontextwechsel
Autor: Quantium40 06.12.13 - 12:33
FaLLoC schrieb:
--------------------------------------------------------------------------------
> Bei mir laufen gerade 86 Prozesse. Davon ein Firefox-Prozess mit zwei
> Fensten (42 Tabs, 37 Tabs). Für jeden Tab nen eigenen Prozess macht aus 86
> Prozessen 156 Prozesse. Das sind mal eben doppelt so viele Kontextwechsel.
Dann nehm doch einen Multicore-Prozessor - dann muss der Kontext weniger oft gewechselt werden, weil die Prozesse schön über die Cores verteilt werden. -
Re: 78 zusätzliche Kontextwechsel
Autor: FaLLoC 06.12.13 - 19:50
Sicaine schrieb:
--------------------------------------------------------------------------------
> Und weil Kontextswitches so teuer sind,
Verglichen mit Threads sind Kontextwechsel höllisch teuer.
> wird dein System deutlich langsamer?
Wenn sich die Prozesszahl verdoppelt, dürften sich die Kontextwechsel deutlich erkennbar auf die Performanz auswirken.
> Du kannst ja unter Linux Gruppen bilden.
>
> Oder guckst dir ne CPU raus die das in Hardware macht wie z.b. Intel CPUs.
Irgendwie müssen irgendwann die Register irgendwohin gesichert und zurückgeschrieben werden. Und das verdammt oft pro Sekunde. Das kostet für doppelt so viele Prozesse doppelt so viel Zeit.
--
FaLLoC -
Re: 78 zusätzliche Kontextwechsel
Autor: FaLLoC 06.12.13 - 20:01
Quantium40 schrieb:
--------------------------------------------------------------------------------
> Dann nehm doch einen Multicore-Prozessor - dann muss der Kontext weniger
> oft gewechselt werden, weil die Prozesse schön über die Cores verteilt
> werden.
Da ein Vierkern-Prozessor sowohl bei 156 Prozessen als auch bei 86 Prozessen ein Viertel der Kontextwechsel gegenüber einem Ein-Kern-Prozessor pro Zyklus bräuchte (ja, ich weiß, priority scheduling usw, is ja nur ne Näherung) und ein Viertel von 156 Prozessen immer noch fast doppelt so viel ist wie ein Viertel von 86, habe ich auch bei einem Vierkern-Prozessor doppelt so viele Kontext-Wechsel.
--
FaLLoC -
Re: 78 zusätzliche Kontextwechsel
Autor: Blair 06.12.13 - 20:48
Andere Frage: Ist es wirklich sinnvoll so viele Tabs aufzumachen? Manchmal mache ich das auch, wenn ich z.B. etwas google und viele Ergebnisse in Hintergrundtabs öffne, um sie danach zu sichten. Aber beim normalen Surfen braucht man doch wohl selten so viele Tabs, oder? Wenn man sie lange offen lässt wären sie in als Lesezeichen eh besser aufgehoben.
-
Kommt auf das OS an ...
Autor: Dadie 06.12.13 - 21:25
Man muss an der Stelle auch sagen, dass der Windows Scheduler alles andere als gut ist. Deckt sich leider auch mit meiner Erfahrung. Während es unter Linux relativ egal ist wie viele Threads ein Prozess hat und wie viele Prozesse ein Programm hat, ist es unter Windows das Ganze wesentlich kritischer. Chrome wird von Version zu Version unter Windows unbenutzbarer, instabiler, langsamer und wirkt allgemein Inperformanter. Wohin gegen unter Linux genau das Gegenteil der Fall ist.
Kontextwechsel sind wirklich teuer. Aber irgendwie verkackt es der Windows Scheduler so stark, dass übermässig viele Kontextwechsel durchgeführt werden müssen. Heißt, erst unter Windows wird das Ganze zu einem Problem. -
Re: 78 zusätzliche Kontextwechsel
Autor: hungkubwa 07.12.13 - 07:55
FaLLoC schrieb:
--------------------------------------------------------------------------------
> Bei mir laufen gerade 86 Prozesse. Davon ein Firefox-Prozess mit zwei
> Fensten (42 Tabs, 37 Tabs). Für jeden Tab nen eigenen Prozess macht aus 86
> Prozessen 156 Prozesse. Das sind mal eben doppelt so viele Kontextwechsel.
Dann macht man mal ein paar Tabs zu LOL
Ich kann mir nicht vorstellen das 42 offene Tabs ein Standard Anwendungsfall sind den es zu berücksichtigen gilt.
Microsoft wird bei der Entwicklung von Windows auch kaum berücksichtigen wenn jemand den Bootloader austauscht und dann rum jammert das Windows zickt. -
Re: 78 zusätzliche Kontextwechsel
Autor: peterkleibert 07.12.13 - 09:19
Shocked by Numbers :-)
Meine Erfahrung sagt mir, dass der zu Berechnende Inhalt wesentlich teurer ist, als die Kontextwechsel. Geschweigedenn sind die Scheduler von den modernen OS soweit, dass Thread und Kontext-Wechsel keine ernsthafte Belastung darstellt.
Also lass dich nicht von deinen Zahlen verängstigen. Für diesen wahrscheinlich nicht mal messbaren Performance-Verlust, hast du ein deutliches Plus an Stabilität. -
Re: 78 zusätzliche Kontextwechsel
Autor: jokey2k 08.12.13 - 12:20
FaLLoC schrieb:
--------------------------------------------------------------------------------
> Sicaine schrieb:
> ---------------------------------------------------------------------------
> -----
> > wird dein System deutlich langsamer?
>
> Wenn sich die Prozesszahl verdoppelt, dürften sich die Kontextwechsel
> deutlich erkennbar auf die Performanz auswirken.
Wegen eines Geschwindigkeitsproblems auf einem Rechner habe ich das mal unter QNX ausgemessen. Dort waren es tatsächlich 1,1ms und sehr teuer. Unter Linux lag der gleiche Test auf gleicher Hardware (i7-840) bei 9us.
Wäre mal interessant zu wissen, wie das unter Windows ist. Da ich das mit Posix gemacht habe, läuft der code leider nicht 1:1 unter Win.
Aufgabe: 100 Prozesse, jeder hat ne I/O queue. Der erste wird mit "Hello" gestartet und dann gibts stille Post im Kreis.



