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

Tleiades tleiades at hotmail.com
Sun Mar 18 11:07:05 PDT 2007


Hmm, I'm no real expert on the output of that particular profiler, heck, I 
know too little about the viewer to be any real judge of the trace.

>From my read of it, there were 18 different threads active at some point in 
time during execution, but only one did any real processing.

The way I read this is:

Most of the CPU time appears to be spent inside GL, which is no real 
surprise, NVidea has a tool which can help tell us what is going on inside 
the CPU, maybe using that will bring some light.

I did note a couple of interesting things though, "free" is quite frequently 
on the stack, which suggests to me that there is a lot of memory 
allocation/deallocation going on, i.e. implementing some sort of object 
pooling should improve the performance.

A lot of time is spent in LLOctreeTraveler::traverse, my guess is that time 
spent inside the Octree is time spent wisely,  it still suggests to me that 
it is a good candidate for optimization. I'd really like to know how 
frequently we change the render state and how many render batches are being 
sent to the GPU.


----- Original Message ----- 
From: "Laurent Laborde" <kerdezixe at gmail.com>
To: <sldev at lists.secondlife.com>
Sent: Sunday, March 18, 2007 5:58 PM
Subject: Profiling was "Re: [sldev] Multithreading, Garbage 
collection,Caching"


> 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
>


--------------------------------------------------------------------------------


> _______________________________________________
> Click here to unsubscribe or manage your list subscription:
> /index.html
> 



More information about the SLDev mailing list