Eine der Fahnen Sie CoInitializeEx passieren kann, ist COINIT_SPEED_OVER_MEMORY, die als dokumentiert ist: https://msdn.microsoft.com/en-us/library/ms678505(v=VS.85).aspx
COINIT_SPEED_OVER_MEMORY: Handels Speicher für Geschwindigkeit. Diese Dokumentation ist bereits vage, da sie nicht sagt, in welche Richtung der Handel gemacht wird. Verringern Sie den Arbeitsspeicher, um die Geschwindigkeit zu erhöhen, oder erhöhen Sie den Arbeitsspeicher, indem Sie die Geschwindigkeit reduzieren? Tatsächlich ist es keines: Wenn Sie dieses Flag übergeben, weisen Sie COM an, mehr Speicher zu verbrauchen, um die CPU-Auslastung zu reduzieren, vorausgesetzt, dass Sie schneller laufen, indem Sie weniger Zyklen ausführen. Prozess-Einweg-Übergang. Sobald irgendjemand irgendwo in dem Prozess COM in den Schnellspeichermodus versetzt, bleibt das Flag gesetzt und bleibt gesetzt, bis der Prozess endet.
Wann sollten Sie diesen Modus aktivieren? Es spielt keine Rolle, denn soweit ich das beurteilen kann, gibt es in COM keinen Code, der sein Verhalten ändert, je nachdem ob der Prozess in diesen Modus versetzt wurde! Es sieht so aus, als wäre das Flag hinzugefügt worden, als DCOM eingeführt wurde, aber es wurde nie an irgendetwas angeschlossen. (Oder welcher Code, der angeschlossen wurde, wurde nie ausgeliefert.)
¹ Wie Sie wissen, ist die Verwendung von mehr Arbeitsspeicher keine Garantie dafür, dass Sie schneller laufen, da höhere Speicherauslastung die Wahrscheinlichkeit erhöht, dass Sie einen L1 Cache-Fehler oder einen Seitenfehler benötigen teuer in der Wartezeit (wenn auch nicht in der CPU-Nutzung).
Irgendwelche Hinweise dafür? –
http://msdn.microsoft.com/en-us/library/ms678505(VS.85).aspx – paxdiablo