Profiling was "Re: [sldev] Multithreading, Garbage collection, Caching"

Laurent Laborde kerdezixe at gmail.com
Sun Mar 18 11:11:11 PDT 2007


I Tried more test.
When i run at LOW fps, i notice that most of the CPU time is spent in
the idle() loop.
Is the idle loop called when the CPU is waiting for some I/O and/or GPU ?

I noticed that most "update" are done in the IdleLoop.
It's certainly an awesome idea to NOT try to draw more agent and
object while the CPU is already too busy, but it's also very confusing
: "Wow ! i have awesome FPS but... where are everybody ?".

What about a Sim property, saying what are the priorities in this sim :
- C1 : Priority on Agent Update (eg: a club)
- C2 : Priority on Texture Loading (eg : a shop)
- C3 : Priority on Object Update (Complex building)
- C4 : ?

And a special server property :
- S1 : Give priority to server side stuff (physics, scripts, ...)
- S2 : Give priority to client request (texture, agent update, ...)

And, best of all a "hard" and a "soft limit" on Agent Limit :
1) Number of agent below the "soft limit" : Everyone welcome, the
server will try to process all requests ASAP.
2) Between "soft" and "hard" limit : Process request accordingly to
the "server property" (server side or client request).
2a) if S2 : The Time Dilatation drop.
2b) if S1 : Some (new ?) Agent won't have their update request
processed. But the time dilatation don't drop.
3) over "hard limit" : Sim full, can't enter.

-- 
kerunix Flan.


On 3/18/07, Laurent Laborde <kerdezixe at gmail.com> wrote:
> Just switched to First Look, and yes, it's multi-threaded :)
> I Run a mac book pro, dual core 2.16Ghz with ATI X1600, 256MB
>
> in attachment, a 3s sample of application time spent in secondlife. (in%)
> What this weird stuff mean ?
>
> 0) I'm not an expert in profiling ;)
> 1) Most thread are just waiting.
> 2) According to my lil' GL profiling, around 10% of the application
> time is spent in openGL. From time to time, the CPU is waiting for the
> GPU. (i'll mail about that later.)
> 3) What you don't see here is that 30% of my cpu time is spent by
> lookupd (But it look like this is because of the profiling tool, not
> because of secondlife. I'll try to find why)
> 4) 1 of my core is running at 100% while the other one is almost sleeping.
> 5) around 60% of openGL Time is spent in GLDrawRangeElement
> 5) 69% of the time is spent in display(int, float int)
> 5a) 40% in  LLPipeline::renderGeom(LLCamera&)
> 5aa) 10% LLDrawPoolSimple::render(int)
> 5aaa) 7% LLRenderPass::renderTexture(unsigned, unsigned)
> 5ab) 8% LLDrawPoolAlphaPostWater::render(int)
> 5ac) 8% LLDrawPoolAvatar::render(int)
> 5b) 9% LLPipeline::stateSort(LLCamera&)
> 5c) 7% render_ui_and_swap() (with 5% for the UI, 2% for the
> GLSwapBuffer) (WTF ?!)
> 6) 28% in  idle()
>
> --
> Kerunix Flan
>
>


More information about the SLDev mailing list