Bots beim Ziehen Zusehen
In dem angehängten Video kann man den Bots beim Ziehen und Rechnen zusehen.
Das Ganze ist wohl etwas erklärungsbedürftig:
man sieht im Wesentliche 3 Listen, die 3 Queues darstellen:1. Die Ladequeue in der die Spiele stehen, die geladen werden sollen, 2. Die Rechenqueue in der die Spiele zu sehen sind, die gerade berechnet werden und 3. die Ausführungsqueue in der die Spiele stehen, die gezogen werden müssen. Ein Spiel wird jeweils durch seine GID repräsentiert. Wenn man genau hinsieht sieht man wie die Spiele von links (Laden) bis rechts (Ziehen) durchwandern. Oft geht das aber so schnell dass man das nicht sieht.
Zu jeder Liste gehört ein Threadpool mit eine bestimmten Anzahl Threads. Der Rechen-Pool hat z.B. 3 Threads, was bedeutet, das maximal 3 Spiele gleichzeitig berechnet werden. Die grünen Einträge in den Listen sind die aktuell bearbeiteten Einträge.
Das Ganze läuft also extrem multithreaded. Maximal werden (in diesem Beispiel) gleichzeitig 4 Spiele geladen, 3 berechnet und 2 gezogen. man kann das ganze einstellen, wie man in den Comboboxen am oberen Rand sieht. Man kann sich vielleicht fragen, warum nur 2 Spiele gleichzeitig gezogen werden. Nach meiner Erfahrung zwingt alles jenseits von 2 den Karopapierserver buchstäblich in die Knie. Ich hatte am Anfang 5 Threads zunm Ziehen und hab dann irgendwann nur noch Timeouts bekommen. 2 scheint ein guter Kompromiss zu sein. Am Anfang sieht man sogar, dass das ganze nur auf das Laden wartet. Die gesamte Ausführungszeit wird zum großen Teil durch IO bestimmt und gar nicht mal durchs Rechnen. Und das ist der Punkt wo das Ganze vielleicht auch für Didi interessant wird. Insgesamt sieht man dass vom Bot ca. 100 Spiele in 2 Minuten durchgezogen werden
Das Ganze ist vor einigen Jahren von Auszubildenden in unserer Firma erstellt worden, damit die Multithreading lernen. Ich benutze das Ganze ab und zu um manuell die Spiele für die Bots zu ziehen, wie z.B. heute um die aufgelaufenen Spiele der Bots schnell mal abzuarbeiten. (Gelegentlich nutze ich das Ganze auch um eine große Anzahl Spiele für mich zu ziehen wie kürzlich, als ich aus dem Urlaub kam und knapp 300 Spiele durchpflügen musste) Im Normalbetrieb läuft der Bot natürlich ohne grafische Oberfläche.
Man kann sich das Video hier ansehen: [[1]]