Minutes for OpenSim? Progress Meeting 8 October
The meeting started at 1.30pm NZ time, 9.30am Tokyo time.
Mariusz Nowostawski, Mr Kawabi and Johan Berntsson sent their apologies, so only Mike Mazur and Nigel Tucker were present.
Nigel reported that World45 were in the middle of running the previous tests on the new code base. The current
OpenSim? source code had been downloaded and compiled on Visual Studio on Windows XP. The servers have been shown to be fully functional.
Nigel has run some initial tests on profiling the Memory Management and Garbage Collection. Live objects across the servers were taking about 50 Mbytes of memory, with some 2.5MB of garbage collection. Dead objects accounted for 35 Kbytes.
Of the live objects, 19% were Strings, 12%
SceneObjectParts? and 11% Double arrays.
Nigel has started updating the World45 Wiki pages and
SugarCRM? pages and will publish the links as soon as they are ready.
Mike reported that he had spent the week working on the
ClientStack? code and was now resolving difficulties the new code was generating in other parts of
OpenSim? .
Mariusz reported:
I've been pretty busy with the final week of the teaching within Otago, and spend some time on meetings, with the minimal amount of development work carried out. There is an initiative from within Otago to engage more senior students into the testing and
OpenSim?
development - I need to iterate with Kawabe-san to which extend 3Di will
be interested in collaborating directly with Otago.
On the Linux end of the story, I've got new SVN Mono setup and new SVN Opensim setup, although I've been waiting for Nigel to finish setting up his Windows setup so that I could use his notes to make the required transitions more streamlined. In the meantime, I've been investigating .NET and Mono differences.
There have been some activity in the area of memory consumption and the costs of running generic methods on Mono vs. .Net. Running the same benchmark for memory-eating implementation of fast virtual generic method calls, the Mono team is getting these numbers with the new improved JIT implementation:
no calls: 16.82306 (code is inlined)
non-generic calls: 21.41356 (non generic method is called)
generic calls: 29.7909 (generic method is called)
non-generic call cost: 4.5905
generic call cost: 12.96784
The old implementation with the old JIT gives:
no calls: 16.63622
non-generic calls: 21.50949
generic calls: 1067.2657
non-generic call cost: 4.87327
generic call cost: 1050.62948
Compared to Microsoft's .NET:
no calls: 18.90625
non-generic calls: 31.40625
generic calls: 52.96875
non-generic call cost: 12.5
generic call cost: 34.0625
I can re-test these with old and new Mono, but, the bottom line is, that we should try to eliminate the generic method calls where appropriate within the
OpenSim? codebase as to boost the performance. Also, inlining calls (especially for those short very frequently used methods) may substantially boost performance. Therefore, I'm proposing the following action items:
(W45 - Nigel) - investigate which short/utility methods are the most frequently called, and check if these are normal virtual methods or generic methods - pass the data to 3Di
(3Di - Mike?) - investigate of how much of the codebase relies on generics, and if that can be easily eliminated. Provide a patch, and W45 will retest the system with and without generics so that we can quantify the impact this change can have on speed and memory consumption.
Project Staffing:
World45 will have a research assistant ready to start on Monday - Nathan, who has existing
SecondLife? experience; also a Research Student will start in the first week of November. Mariusz and Nigel will continue in their present roles.
Nigel asked about a difficulty he was having in running the servers on one machine and
SecondLife? on another. Mike commented that this was likely to be due to a fixed local address in the Resources xml files that needed amending.
The meeting finished at 1.47