Die einfachste Lösung wäre, die Aktualisierung zu unterbinden, solange das Gildenfenster nicht geöffnet ist. Das wäre sogar als Addon machbar.
Die einfachste Lösung wäre, die Aktualisierung zu unterbinden, solange das Gildenfenster nicht geöffnet ist. Das wäre sogar als Addon machbar.
Worauf es scheinbar keinen Effekt hatte war die Latenz jedenfalls keinen für mich spürbaren.
... Dann sind es maximal 2500 Accounts mit 7 oder 8 unterschiedlichen Informationen, also insgesamt vielleicht ~40000 Informationen. Die werden zwar als irgendwelche Bits verarbeitet, aber modernere CPU's können mittlerweile recht hohe Bit-Rechnungen pro Instruktion verarbeiteten. Das sind halt auch einfache Informationen die mit keiner Spiel-Physik, -Skript oder -KI irgendeinen großen Austausch oder Berechnung haben/brauchen. Von daher sieht das für mich wie der Tropfen auf dem heißen Stein aus. Auch falls man an der Aktualisierung noch etwas verbessern kann, sodass die CPU für die Information weniger rechnen muss. ...
Ganz grob übern Daumen gepeilt, ist nativer Code um den Faktor 3-4 schneller als interpretierter Code. Bezogen auf LUA. Kann anders aussehen bei anderen Sprachen.
Deshalb ist auch dieser Satz eine Täuschung:...ich kann Dir gerne ein Programm schreiben, das nur Deinen Namen auf den Bildschirm ausgibt und trotzdem die CPU Zyklen verbrennt.
Ein Programmchen was meinen Namen ausgibt (sei dieser noch so kompliziert) hat vielleicht zwei drei Zeilen 0815 Code. Nichts was eine CPU wühlen lässt. Er würde wahrscheinlich zusätzlich eine Schleife mit einer Blödsinnsrechnung ins Programmchen reinschreiben, aus der die CPU selbst nicht mehr rauskommt und dann durchrattert.
Das wäre aber einfach nur Sabotage.
@Arkadius: Bei der Entwicklung von Addons für WoW hatte ich festgestellt, dass die LUA Skripte singlethreaded ausgeführt und vom Main Thread des Spiels aus aufgerufen wurden. Das heißt, man konnte recht schnell durch eine längere Operation den ganzen Client blockieren. Ist das in ESO ähnlich, oder laufen dort die Addons in separaten Threads?
@Arkadius: Bei der Entwicklung von Addons für WoW hatte ich festgestellt, dass die LUA Skripte singlethreaded ausgeführt und vom Main Thread des Spiels aus aufgerufen wurden. Das heißt, man konnte recht schnell durch eine längere Operation den ganzen Client blockieren. Ist das in ESO ähnlich, oder laufen dort die Addons in separaten Threads?
LUA ist nicht für Multithreading designed. Es kann also immer nur ein Thread zur gleichen Zeit Code ausführen. Und ja, bei ESO ist es das Gleiche wie bei WOW. Ein LUA Aufruf blockiert den gesamten Clienten. Daher ist auch wichtig, dass LUA Code möglichst effizient geschrieben wird.
@Arkadius: Bei der Entwicklung von Addons für WoW hatte ich festgestellt, dass die LUA Skripte singlethreaded ausgeführt und vom Main Thread des Spiels aus aufgerufen wurden. Das heißt, man konnte recht schnell durch eine längere Operation den ganzen Client blockieren. Ist das in ESO ähnlich, oder laufen dort die Addons in separaten Threads?
LUA ist nicht für Multithreading designed. Es kann also immer nur ein Thread zur gleichen Zeit Code ausführen. Und ja, bei ESO ist es das Gleiche wie bei WOW. Ein LUA Aufruf blockiert den gesamten Clienten. Daher ist auch wichtig, dass LUA Code möglichst effizient geschrieben wird.
NinaSophie schrieb: »Ganz grob übern Daumen gepeilt, ist nativer Code um den Faktor 3-4 schneller als interpretierter Code. Bezogen auf LUA. Kann anders aussehen bei anderen Sprachen.
Ja das betrifft doch aber nur den Start, ich will doch mal hoffen, dass jeder benötigte Lua-Code einmal anfangs geladen wird und dann ebenfalls in der gleichen binären Form wie nativer Code vorliegt. Oder wird bei jeder Änderung der Gildeninformationen das Lua-Script erneut geladen und interpretiert? Das wäre ... furchtbar.
@Arkadius: Bei der Entwicklung von Addons für WoW hatte ich festgestellt, dass die LUA Skripte singlethreaded ausgeführt und vom Main Thread des Spiels aus aufgerufen wurden. Das heißt, man konnte recht schnell durch eine längere Operation den ganzen Client blockieren. Ist das in ESO ähnlich, oder laufen dort die Addons in separaten Threads?
LUA ist nicht für Multithreading designed. Es kann also immer nur ein Thread zur gleichen Zeit Code ausführen. Und ja, bei ESO ist es das Gleiche wie bei WOW. Ein LUA Aufruf blockiert den gesamten Clienten. Daher ist auch wichtig, dass LUA Code möglichst effizient geschrieben wird.
Shadow-Fighter schrieb: »@Arkadius: Bei der Entwicklung von Addons für WoW hatte ich festgestellt, dass die LUA Skripte singlethreaded ausgeführt und vom Main Thread des Spiels aus aufgerufen wurden. Das heißt, man konnte recht schnell durch eine längere Operation den ganzen Client blockieren. Ist das in ESO ähnlich, oder laufen dort die Addons in separaten Threads?
LUA ist nicht für Multithreading designed. Es kann also immer nur ein Thread zur gleichen Zeit Code ausführen. Und ja, bei ESO ist es das Gleiche wie bei WOW. Ein LUA Aufruf blockiert den gesamten Clienten. Daher ist auch wichtig, dass LUA Code möglichst effizient geschrieben wird.
Ok, danke dir.
Lua kann aber sehr wohl Befehle an C/C++ Code schicken, der wiederum mehrere Threads aus dem Threadpool starten kann. Die Resultate würden wiederum zum Lua Code landen.
Ich denke nicht, dass die ganze UI singlethreaded abgearbeitet wird...
Shadow-Fighter schrieb: »@Arkadius: Bei der Entwicklung von Addons für WoW hatte ich festgestellt, dass die LUA Skripte singlethreaded ausgeführt und vom Main Thread des Spiels aus aufgerufen wurden. Das heißt, man konnte recht schnell durch eine längere Operation den ganzen Client blockieren. Ist das in ESO ähnlich, oder laufen dort die Addons in separaten Threads?
LUA ist nicht für Multithreading designed. Es kann also immer nur ein Thread zur gleichen Zeit Code ausführen. Und ja, bei ESO ist es das Gleiche wie bei WOW. Ein LUA Aufruf blockiert den gesamten Clienten. Daher ist auch wichtig, dass LUA Code möglichst effizient geschrieben wird.
Ok, danke dir.
Lua kann aber sehr wohl Befehle an C/C++ Code schicken, der wiederum mehrere Threads aus dem Threadpool starten kann. Die Resultate würden wiederum zum Lua Code landen.
Ich denke nicht, dass die ganze UI singlethreaded abgearbeitet wird...
Oh doch, wird sie.
Die in C geschriebene LUA VM ist schlicht nicht threadsafe. LUA ist quelloffen, kannst dich also selbst davon überzeugen.
https://forums.elderscrollsonline.com/en/discussion/448084/psa-a-simple-trick-to-help-reduce-lag
Ich weiß nicht ob ich weinen oder lachen soll. Aber vielleicht ist das ja dann der kommende „Patch to end all lag“.
Danke euch beiden, gute Idee!Dont_do_drugs schrieb: »Wie bereits oben zu lesen, hatte Arka mir das Script zugeschickt und ich habs auf esoui hochgeladen, das Mini-Addon ist also auf Minion downlaodbar.
ValarMorghulis1896 schrieb: »Danke euch beiden, gute Idee!Dont_do_drugs schrieb: »Wie bereits oben zu lesen, hatte Arka mir das Script zugeschickt und ich habs auf esoui hochgeladen, das Mini-Addon ist also auf Minion downlaodbar.
@Gamer1986PAN : könnte sich 'Beam me up' eventuell damit beißen, wenn die Gildenlisten nicht automatisch aktualisiert werden?
Dont_do_drugs schrieb: »ValarMorghulis1896 schrieb: »Danke euch beiden, gute Idee!Dont_do_drugs schrieb: »Wie bereits oben zu lesen, hatte Arka mir das Script zugeschickt und ich habs auf esoui hochgeladen, das Mini-Addon ist also auf Minion downlaodbar.
@Gamer1986PAN : könnte sich 'Beam me up' eventuell damit beißen, wenn die Gildenlisten nicht automatisch aktualisiert werden?
ich bin mir sicher, auch dafür gibts lösungen
ValarMorghulis1896 schrieb: »Dont_do_drugs schrieb: »ValarMorghulis1896 schrieb: »Danke euch beiden, gute Idee!Dont_do_drugs schrieb: »Wie bereits oben zu lesen, hatte Arka mir das Script zugeschickt und ich habs auf esoui hochgeladen, das Mini-Addon ist also auf Minion downlaodbar.
@Gamer1986PAN : könnte sich 'Beam me up' eventuell damit beißen, wenn die Gildenlisten nicht automatisch aktualisiert werden?
ich bin mir sicher, auch dafür gibts lösungen
Icke ooch, dachte nur, ich tagge ihn gleich mal, benutze sein Addon nämlich fast ausschließlich, wenn ich außerhalb Cyrodiils unterwegs bin