Pages: [1] :: one page |
|
Author |
Thread Statistics | Show CCP posts - 0 post(s) |
Antares Andaris
|
Posted - 2006.04.01 16:29:00 -
[1]
A question for the devs:
I just checked my task manager to see how much threads the EVE client requires and i was like "WHAT THE HELL?!".
The task manager shows only one thread for the "exefile.exe". Can this be? Obviously yes...
Now why have you used only one bloody thread for a game like EVE? Did you want to avoid mutual exculsion? Are you using a lot of global variables?
Normally i would expect, that the client got at least 3 threads: 1.GUI thread 2.Network thread 3.Main thread for game
As a computer science student i really dont get this. Hopefully i am wrong, and the other threads "hide" somewhere...
|
damicatz
|
Posted - 2006.04.02 04:16:00 -
[2]
Edited by: damicatz on 02/04/2006 04:18:37 Games are inherently multithreaded because DirectX/Direct3D always has it's own thread. If I recall, the DirectX thread does not appear under the program that called DirectX itself but under it's own entry in the process viewer. But it's been a long time since I've touched Windows let alone used it's task manager.
As for the network thread, EVE isn't very network intensive and doesn't transmit/recieve a lot of data all the time. My guess is it suspends the network thread when theres no activity.
|
Svengali
|
Posted - 2006.04.02 09:31:00 -
[3]
Its typically much much easier to just use 1 thread and poll the thread. When you get data, pull it in and process it.
That said, they are using python a lot in their client, which wont show any system threads. From what Ive gathered they have done a ton of work with stackless python, which seems to indicate they are using lightweight python threads for processing. And the UI still often blocks on things.
|
Antares Andaris
|
Posted - 2006.04.02 10:35:00 -
[4]
Edited by: Antares Andaris on 02/04/2006 10:36:39 Edited by: Antares Andaris on 02/04/2006 10:35:56
Originally by: damicatz
As for the network thread, EVE isn't very network intensive and doesn't transmit/recieve a lot of data all the time. My guess is it suspends the network thread when theres no activity.
Obviously you are right. I have watched the "exefile.exe" thread for some time and sometimes a second thread shows up. Thanx for pointing that out :)
|
Andom
|
Posted - 2006.04.07 21:44:00 -
[5]
From what I saw on the site for the python VM they're using, it'll try to use cooperative/micro threads (in-process) when possible, but will fork a real thread when necessary.
|
Nemelle
|
Posted - 2006.04.08 19:12:00 -
[6]
Hmm the above info are interesting.
Is it true that multi-threaded applications would be more "timing sensitive" than a single threaded application?
I am asking because a friend of mine who works in QA keeps complaining about multi-threaded applications, and how certain machine's speed and load would cause an event thread to fetch information from the data cache that hasn't been populated by the data thread.
If that is the case, would the EVE client be better off as a single thread application for the sake of stability? More over, is it true that the multi-threaded applications would run into more issues with timing and such if not carefully implemented (which I agree can cause alot more problems).
|
damicatz
|
Posted - 2006.04.08 19:18:00 -
[7]
A properly written multi-threaded program would not have such issues. There are multiple ways to ensure cordination between threads such as locks and semaphores. Furthermore, you usually don't divide threads by events and data and if a thread does try to fetch information that's not there yet, it should be programmed to suspend until it's called upon again.
Originally by: Nemelle Hmm the above info are interesting.
Is it true that multi-threaded applications would be more "timing sensitive" than a single threaded application?
I am asking because a friend of mine who works in QA keeps complaining about multi-threaded applications, and how certain machine's speed and load would cause an event thread to fetch information from the data cache that hasn't been populated by the data thread.
If that is the case, would the EVE client be better off as a single thread application for the sake of stability? More over, is it true that the multi-threaded applications would run into more issues with timing and such if not carefully implemented (which I agree can cause alot more problems).
|
Tetrahedral
|
Posted - 2006.07.21 02:47:00 -
[8]
Originally by: Antares Andaris A question for the devs:
I just checked my task manager to see how much threads the EVE client requires and i was like "WHAT THE HELL?!".
The task manager shows only one thread for the "exefile.exe". Can this be? Obviously yes...
Now why have you used only one bloody thread for a game like EVE? Did you want to avoid mutual exculsion? Are you using a lot of global variables?
Normally i would expect, that the client got at least 3 threads: 1.GUI thread 2.Network thread 3.Main thread for game
As a computer science student i really dont get this. Hopefully i am wrong, and the other threads "hide" somewhere...
Depending on the exact implementation of threads, threads will very often NOT appear as seperate processes in Windows task manager or top on a POSIX-compliant system. The whole idea behind threads is to be more lightweight than independent processes.
|
Nefarious Phantom
|
Posted - 2006.07.24 07:00:00 -
[9]
well, if eve at least had a seperate thread for GUI that would be nice, considering it likes to freeze the client a little while loading :)
|
Gaogan
Gallente
|
Posted - 2006.07.26 19:03:00 -
[10]
Originally by: Nefarious Phantom well, if eve at least had a seperate thread for GUI that would be nice, considering it likes to freeze the client a little while loading :)
For the love of god, they really need to multithread the gui so it loads textures and whatnot in the background so as not to completely lock up the client when you warp to a pos, for instance.
It is completely unacceptable for the client to completely lock up for 5-60 seconds when you warp to a pos, especially an unfriendly one.
|
|
Xianthar
Sha Kharn Corp Ascendant Frontier
|
Posted - 2006.07.27 05:36:00 -
[11]
the process viewer in windows shows you processes, not threads, a process can have many threads. the windows process viewer does not show all the processes that are running either, there are many that are hidden from you completely.
press control-alt-del click the performance tab, at the bottom on the left you'll see the number of current threads, probably several hundered compared to the 30ish processes you have running.
most of the client is written in stackless python...should tell you something about the nature of the threading in the client.
-xian
|
|
|
|
Pages: [1] :: one page |
First page | Previous page | Next page | Last page |