[vworld-tech] RE: Python/java for the back end

Alex Chacha achacha at hotmail.com
Sat Apr 30 17:48:40 PDT 2005

Brian Hook wrote:
>>For my latest project I wanted a quick and dirty backend code so I
>>can concentrate on the questing and crafting engine, all was well
>>initially and then I did a small 10 client load test and saw that
>>it just did not scale well at all.
>Why?  Did you profile this?  I can't see how a 10 client load test would 
>fail even with something catastrophically slow.

I did not expect it either, there was a lot of computation (determining 
resource trees and tradeskill products), the tradeskill system is very very 
dynamic and with enough resources it can be quite a CPU hog, lots of fun to 
play with it but it's CPU intensive.  My CPU was 100% for the whole test, 
compared to abot 10% on a C++ implementation.  That aside, I am still using 
the python code as a test interface to the engine and it works well.  Why 
waste a pergfectly good python implementation, just find a new use for it.

>>Given that I did more testing with java and managed to improve
>>performance by only using 10 worker threads and managed 50 client
>>load before I started noticing lag.
>Did you just try doing this as a single threaded server with network 
>marshalling at the top of the main loop?  This has worked very effectively 
>for me in the past and dodges a lot of the problem associated with 
>multithreading the server (and associated threading problems found with 
>many languages).

I had 10 listener threads per client.  I since switched to 1 listener and 10 
worker threads and a simple queue system.  It worked well with both java and 
C++, but I stuck with C++ since the code is CPU intensive I want to make 
sure I am getting maximum performance out of it.  I am at the point where I 
am testing the performance of msvc and g++ optimizers and profiling the code 

Java makes a lot of the coding easy at first but I (personally) find it 
tough to give up performance knowing well that once I start increasing the 
game engine complexity I will start to feel the performance bottlenecks.

More information about the vworld-tech mailing list