2016-07-03 12 views
1

Ich weiß, dass Vibe.D-Implementierung auf Fasern basiert. Aber ich weiß nicht, wie hohe Last Szenarien von Vibe.D gehandhabt werden. Ist es der Scheduler in Vibe D. Zuweisung von Fasern auf mehreren Threads oder nur einen Thread für alle Fasern?Ist Vibe.D multi-threaded, um gleichzeitige Anforderungen zu behandeln?

Diese Überlegung ist sehr wichtig, da selbst mit der hohen Effizienz von Fibers viel CPU-Zeit verschwendet wird, wird nicht mehr als ein Thread verwendet, um alle eingehenden Anfragen zu bearbeiten.

Antwort

5

Ihre Titelseite sagt ja:

http://vibed.org/

Diese Seite hat die Details

http://vibed.org/features#multi-threading

Verteilte Verarbeitung von eingehenden Verbindungen

Der HTTP-Server (wie auch wie jeder andere TCP-basierte Server) kann angewiesen werden, eingehende Verbindungen über die Worker-Threads des Thread-Pools statt im Hauptthread zu verarbeiten. Für Anwendungen, die im Prozess keinen Status für verschiedene Verbindungen freigeben müssen, kann dies die maximale Anzahl der Anforderungen pro Sekunde linear mit der Anzahl der Kerne im System erhöhen. Diese Funktion wird mithilfe der Einstellungen HTTPServerOption.distribute oder TCPListenOptions.distribute aktiviert.