Profiling was "Re: [sldev] Multithreading, Garbage collection,
Caching"
Laurent Laborde
kerdezixe at gmail.com
Sun Mar 18 09:58:27 PDT 2007
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
-------------- next part --------------
Analysis of sampling pid 1451 every 10.000000 milliseconds
Call graph:
100 Thread_0f07
100 start
100 _start
100 main
100 main_loop()
69 display(int, float, int)
40 LLPipeline::renderGeom(LLCamera&)
10 LLDrawPoolSimple::render(int)
7 LLRenderPass::renderTexture(unsigned, unsigned)
7 LLRenderPass::pushBatch(LLDrawInfo&, unsigned, int)
4 glDrawRangeElements
4 gleDrawArraysOrElements_VBO_Exec
2 gldPageoffBuffer
1 gldDestroyVertexArray
1 io_connect_map_memory
1 mach_msg_trap
1 mach_msg_trap
1 gldPageoffBuffer
1 gldGetQueryInfo
1 gldGetQueryInfo
1 gldUpdateDispatch
1 gldFlushVertexArray
1 gldPageoffBuffer
1 gldPageoffBuffer
2 LLVertexBuffer::setBuffer(unsigned)
1 LLVertexBuffer::setupVertexBuffer(unsigned) const
1 LLVertexBuffer::setupVertexBuffer(unsigned) const
1 LLVertexBuffer::unmapBuffer()
1 LLVertexBuffer::useVBOs() const
1 LLVertexBuffer::useVBOs() const
1 LLRenderPass::pushBatch(LLDrawInfo&, unsigned, int)
3 LLRenderPass::renderActive(unsigned, unsigned, int)
3 LLRenderPass::renderGroup(LLSpatialGroup*, unsigned, unsigned, int)
3 LLRenderPass::pushBatch(LLDrawInfo&, unsigned, int)
3 glDrawRangeElements
1 gleDrawArraysOrElements_IMM_Exec
1 gldUpdateDispatch
1 gldGetQueryInfo
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
1 gleDrawArraysOrElements_VBO_Exec
1 gldUpdateDispatch
1 gldFlushVertexArray
1 gldPageoffBuffer
1 gldPageoffBuffer
1 gldDestroyBuffer
1 io_connect_method_structureI_structureO
1 mach_msg_trap
1 mach_msg_trap
1 memset
1 memset
8 LLDrawPoolAlphaPostWater::render(int)
8 LLDrawPoolAlpha::render(std::vector<LLSpatialGroup*, std::allocator<LLSpatialGroup*> >&)
8 LLDrawPoolAlpha::renderAlpha(unsigned, std::vector<LLSpatialGroup*, std::allocator<LLSpatialGroup*> >&)
8 LLDrawPoolAlpha::renderGroupAlpha(LLSpatialGroup*, unsigned, unsigned, int)
8 glDrawRangeElements
7 gleDrawArraysOrElements_IMM_Exec
6 gleDrawArraysOrElements_Core
3 gleBeginPrimitiveTCLFunc
3 gldInitDispatch
3 gldDestroyVertexArray
3 io_connect_map_memory
3 mach_msg_trap
3 mach_msg_trap
1 0x2d18fa8d
1 0x2d18fa8d
1 0x2d18fb5c
1 0x2d18fb5c
1 gleFlushPrimitiveTCLFunc
1 gldInitDispatch
1 gldDestroyVertexArray
1 io_connect_map_memory
1 mach_msg_trap
1 mach_msg_trap
1 gldUpdateDispatch
1 gldGetQueryInfo
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
1 gleDrawArraysOrElements_VBO_Exec
1 gldUpdateDispatch
1 gldGetQueryInfo
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
8 LLDrawPoolAvatar::render(int)
8 LLDrawPoolAvatar::renderAvatars(LLVOAvatar*, int)
8 LLVOAvatar::renderSkinned(e_avatar_render_pass)
5 LLViewerJoint::render(float, int)
5 LLViewerJoint::render(float, int)
4 LLViewerJointMesh::drawShape(float, int)
4 llDrawRangeElements(unsigned long, unsigned long, unsigned long, long, unsigned long, void const*)
4 glDrawRangeElements
4 gleDrawArraysOrElements_IMM_Exec
4 gleDrawArraysOrElements_Core
2 gleFlushPrimitiveTCLFunc
2 gldInitDispatch
2 gldDestroyVertexArray
2 io_connect_map_memory
2 mach_msg_trap
2 mach_msg_trap
1 0x2d1a0f45
1 0x2d1a0f45
1 0x2d1a0f4a
1 0x2d1a0f4a
1 LLViewerJoint::render(float, int)
3 LLVOAvatar::renderTransparent()
3 LLViewerJoint::render(float, int)
3 LLViewerJoint::render(float, int)
3 LLViewerJointMesh::drawShape(float, int)
3 llDrawRangeElements(unsigned long, unsigned long, unsigned long, long, unsigned long, void const*)
3 glDrawRangeElements
3 gleDrawArraysOrElements_IMM_Exec
2 gleDrawArraysOrElements_Core
1 0x2d1a0f1f
1 0x2d1a0f1f
1 gleBeginPrimitiveTCLFunc
1 gldInitDispatch
1 gldDestroyVertexArray
1 io_connect_map_memory
1 mach_msg_trap
1 mach_msg_trap
1 gldUpdateDispatch
1 gldGetTextureLevel
1 gldCreateQuery
1 gldCreateQuery
6 LLDrawPoolTree::render(int)
6 LLDrawPoolTree::renderTree(int)
6 LLVOTree::drawBranchPipeline(unsigned*, int, int, unsigned short, unsigned short, float, float, float, float, float)
5 LLVOTree::drawBranchPipeline(unsigned*, int, int, unsigned short, unsigned short, float, float, float, float, float)
4 LLVOTree::drawBranchPipeline(unsigned*, int, int, unsigned short, unsigned short, float, float, float, float, float)
2 LLVOTree::drawBranchPipeline(unsigned*, int, int, unsigned short, unsigned short, float, float, float, float, float)
1 glDrawElements
1 gleDrawArraysOrElements_VBO_Exec
1 gldUpdateDispatch
1 gldGetQueryInfo
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
1 gldDestroyVertexArray
1 io_connect_map_memory
1 mach_msg_trap
1 mach_msg_trap
1 glRotatef
1 glRotatef_Exec
1 cosl
1 cosl
2 glDrawElements
2 gleDrawArraysOrElements_VBO_Exec
2 gldUpdateDispatch
1 gldGetQueryInfo
1 gldGetString
1 gldGetString
1 gldUpdateDispatch
1 glDrawElements
1 memset
1 memset
1 glDrawElements
1 gleDrawArraysOrElements_VBO_Exec
1 gldUpdateDispatch
1 gldGetQueryInfo
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
3 LLPipeline::doOcclusion(LLCamera&)
3 LLSpatialPartition::doOcclusion(LLCamera*)
1 glDrawRangeElements
1 gleDrawArraysOrElements_IMM_Exec
1 gleDrawArraysOrElements_Core
1 0x2d0c3920
1 0x2d0c3920
1 glEndQueryARB
1 glEndQuery_Exec
1 gldGetString
1 gldGetString
1 gldGetString
1 glFlush
1 gldFlush
1 gldDestroyVertexArray
1 io_connect_map_memory
1 mach_msg_trap
1 mach_msg_trap
3 render_hud_elements()
2 LLWorld::renderPropertyLines()
2 LLViewerParcelOverlay::renderPropertyLines()
2 glBegin
1 __i686.get_pc_thunk.bx
1 __i686.get_pc_thunk.bx
1 gleBeginPrimitiveTCLFunc
1 gldInitDispatch
1 gldInitDispatch
1 LLHUDObject::renderAll()
1 LLHUDText::render()
1 LLHUDText::renderText(int)
1 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_M_destroy(std::allocator<char> const&)
1 free
1 szone_size
1 szone_size
1 LLDrawPoolStars::render(int)
1 glDrawElements
1 gleDrawArraysOrElements_IMM_Exec
1 gleDrawArraysOrElements_Core
1 0x2d09d67d
1 0x2d09d67d
1 LLVOSky::updateFog(float)
1 LLVOSky::updateFog(float)
10 LLPipeline::updateGeom(float)
9 LLDrawable::updateGeometry(int)
6 LLVOVolume::updateGeometry(LLDrawable*)
5 LLVolumeImplFlexible::doUpdateGeometry(LLDrawable*)
3 LLVolume::createVolumeFaces()
2 LLVolumeFace::createSide()
1 LLVolumeFace::createSide()
1 calc_binormal_from_triangle(LLVector3 const&, LLVector2 const&, LLVector3 const&, LLVector2 const&, LLVector3 const&, LLVector2 const&)
1 calc_binormal_from_triangle(LLVector3 const&, LLVector2 const&, LLVector3 const&, LLVector2 const&, LLVector3 const&, LLVector2 const&)
1 free
1 szone_free
1 szone_free
1 LLVOVolume::genBBoxes(int)
1 LLVOVolume::updateTextures()
1 LLVOVolume::getTextureVirtualSize(LLFace*)
1 LLFace::getPositionAgent() const
1 LLFace::getPositionAgent() const
1 LLVolume::regen()
1 LLVolume::generate()
1 operator*(LLVector3 const&, LLQuaternion const&)
1 operator*(LLVector3 const&, LLQuaternion const&)
1 LLVOVolume::setVolume(LLVolumeParams const&, int, bool)
1 LLPrimitive::setVolume(LLVolumeParams const&, int, bool)
1 LLVolumeParams::operator==(LLVolumeParams const&) const
1 LLPathParams::operator==(LLPathParams const&) const
1 LLPathParams::operator==(LLPathParams const&) const
2 LLVOPartGroup::updateGeometry(LLDrawable*)
1 LLDrawable::setNumFacesFast(int, LLFacePool*, LLViewerImage*)
1 LLDrawable::addFace(LLFacePool*, LLViewerImage*)
1 operator new(unsigned long)
1 malloc
1 szone_malloc
1 szone_malloc
1 LLVOPartGroup::updateGeometry(LLDrawable*)
1 LLVOClouds::updateGeometry(LLDrawable*)
1 LLFace::setTEOffset(int)
1 LLFace::setTEOffset(int)
1 LLPipeline::updateMovedList(std::vector<LLPointer<LLDrawable>, std::allocator<LLPointer<LLDrawable> > >&)
1 LLSpatialBridge::updateMove()
1 LLSpatialPartition::move(LLDrawable*, LLSpatialGroup*, int)
1 LLSpatialGroup::updateInGroup(LLDrawable*, int)
1 LLSpatialBridge::updateSpatialExtents()
1 LLSpatialGroup::rebound()
1 LLSpatialGroup::rebound()
1 LLSpatialGroup::rebound()
1 LLSpatialGroup::rebound()
1 LLSpatialGroup::rebound()
1 LLSpatialGroup::rebound()
1 LLSpatialGroup::boundObjects(int, LLVector3&, LLVector3&)
1 LLSpatialGroup::boundObjects(int, LLVector3&, LLVector3&)
9 LLPipeline::stateSort(LLCamera&)
5 LLPipeline::stateSort(LLDrawable*, LLCamera&)
5 LLVOAvatar::updateVisibility(int)
5 LLDrawable::updateDistance(LLCamera&)
5 LLVOAvatar::updateLOD()
3 LLViewerJoint::updateGeometry()
2 LLViewerJointMesh::updateGeometry()
2 LLViewerJointMesh::updateGeometry()
1 LLStrider<LLVector3>::operator[](unsigned)
1 LLStrider<LLVector3>::operator[](unsigned)
2 LLVOAvatar::updateMeshData()
2 LLViewerJoint::updateFaceData(LLFace*, float, int)
1 LLStrider<unsigned>::operator[](unsigned)
1 LLStrider<unsigned>::operator[](unsigned)
1 LLViewerJointMesh::updateFaceData(LLFace*, float, int)
1 LLStrider<LLVector3>::operator[](unsigned)
1 LLStrider<LLVector3>::operator[](unsigned)
4 LLPipeline::postSort(LLCamera&)
4 LLSpatialGroup::rebuildGeom()
2 LLSpatialPartition::rebuildGeom(LLSpatialGroup*)
2 LLParticlePartition::getGeometry(LLSpatialGroup*)
1 LLVOClouds::getGeometry(int, LLStrider<LLVector3>&, LLStrider<LLVector3>&, LLStrider<LLVector2>&, LLStrider<LLColor4U>&, LLStrider<unsigned>&)
1 LLVOClouds::getGeometry(int, LLStrider<LLVector3>&, LLStrider<LLVector3>&, LLStrider<LLVector2>&, LLStrider<LLColor4U>&, LLStrider<unsigned>&)
1 LLVOPartGroup::getGeometry(int, LLStrider<LLVector3>&, LLStrider<LLVector3>&, LLStrider<LLVector2>&, LLStrider<LLColor4U>&, LLStrider<unsigned>&)
1 LLVOPartGroup::getGeometry(int, LLStrider<LLVector3>&, LLStrider<LLVector3>&, LLStrider<LLVector2>&, LLStrider<LLColor4U>&, LLStrider<unsigned>&)
2 LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup*)
2 LLFace::getGeometryVolume(LLVolume const&, int, LLStrider<LLVector3>&, LLStrider<LLVector3>&, LLStrider<LLVector2>&, LLStrider<LLVector2>&, LLStrider<LLColor4U>&, LLStrider<unsigned>&, LLMatrix4 const&, LLMatrix3 const&, unsigned&)
2 LLFace::getGeometryVolume(LLVolume const&, int, LLStrider<LLVector3>&, LLStrider<LLVector3>&, LLStrider<LLVector2>&, LLStrider<LLVector2>&, LLStrider<LLColor4U>&, LLStrider<unsigned>&, LLMatrix4 const&, LLMatrix3 const&, unsigned&)
7 render_ui_and_swap()
5 render_ui_2d()
5 LLViewerWindow::draw()
3 LLView::draw()
2 LLView::draw()
2 LLContainerView::draw()
2 LLView::draw()
2 LLContainerView::draw()
2 LLView::draw()
2 LLStatBar::draw()
2 LLFontGL::renderUTF8(LLStringBase<char> const&, int, float, float, LLColor4 const&, LLFontGL::HAlign, LLFontGL::VAlign, unsigned char, int, int, float*, int) const
1 LLFontGL::render(LLStringBase<wchar_t> const&, int, float, float, LLColor4 const&, LLFontGL::HAlign, LLFontGL::VAlign, unsigned char, int, int, float*, int, int) const
1 glBegin
1 glBegin_Exec
1 gldUpdateDispatch
1 gldGetQueryInfo
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
1 gldGetString
1 utf8str_to_wstring(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
1 utf8str_to_wstring(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)
1 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned long)
1 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_M_destroy(std::allocator<wchar_t> const&)
1 free
1 szone_free
1 szone_free
1 LLMenuHolderGL::draw()
1 LLView::draw()
1 LLMenuGL::draw()
1 LLView::draw()
1 LLMenuItemBranchDownGL::draw()
1 LLFontGL::render(LLStringBase<wchar_t> const&, int, float, float, LLColor4 const&, LLFontGL::HAlign, LLFontGL::VAlign, unsigned char, int, int, float*, int, int) const
1 LLFontGL::render(LLStringBase<wchar_t> const&, int, float, float, LLColor4 const&, LLFontGL::HAlign, LLFontGL::VAlign, unsigned char, int, int, float*, int, int) const
1 LLFont::hasGlyph(wchar_t) const
1 LLFont::getGlyphInfo(wchar_t) const
1 std::_Rb_tree<wchar_t, std::pair<wchar_t const, LLFontGlyphInfo*>, std::_Select1st<std::pair<wchar_t const, LLFontGlyphInfo*> >, std::less<wchar_t>, std::allocator<std::pair<wchar_t const, LLFontGlyphInfo*> > >::find(wchar_t const&)
1 std::_Rb_tree<wchar_t, std::pair<wchar_t const, LLFontGlyphInfo*>, std::_Select1st<std::pair<wchar_t const, LLFontGlyphInfo*> >, std::less<wchar_t>, std::allocator<std::pair<wchar_t const, LLFontGlyphInfo*> > >::find(wchar_t const&)
2 LLTextBox::draw()
2 LLTextBox::drawText(int, int, LLColor4 const&)
2 LLFontGL::render(LLStringBase<wchar_t> const&, int, float, float, LLColor4 const&, LLFontGL::HAlign, LLFontGL::VAlign, unsigned char, int, int, float*, int, int) const
2 LLFont::hasGlyph(wchar_t) const
2 LLFont::getGlyphInfo(wchar_t) const
2 std::_Rb_tree<wchar_t, std::pair<wchar_t const, LLFontGlyphInfo*>, std::_Select1st<std::pair<wchar_t const, LLFontGlyphInfo*> >, std::less<wchar_t>, std::allocator<std::pair<wchar_t const, LLFontGlyphInfo*> > >::find(wchar_t const&)
2 std::_Rb_tree<wchar_t, std::pair<wchar_t const, LLFontGlyphInfo*>, std::_Select1st<std::pair<wchar_t const, LLFontGlyphInfo*> >, std::less<wchar_t>, std::allocator<std::pair<wchar_t const, LLFontGlyphInfo*> > >::find(wchar_t const&)
1 LLVertexBuffer::clientCopy(double)
1 LLVertexBuffer::setBuffer(unsigned)
1 LLVertexBuffer::unmapBuffer()
1 glFlush
1 glFlush_Exec
1 glFlush_Exec
1 glFlush
1 gldFlush
1 gldDestroyVertexArray
1 io_connect_map_memory
1 mach_msg_trap
1 mach_msg_trap
3 LLPipeline::updateCull(LLCamera&)
2 LLPipeline::processOcclusion(LLCamera&)
2 LLSpatialPartition::processOcclusion(LLCamera*)
1 LLOctreeClearOccludedNotActive::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeClearOccludedNotActive::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeNode<LLDrawable>::getOctState()
1 LLOctreeNode<LLDrawable>::getOctState()
1 LLOctreeState<LLDrawable>::getChild(unsigned)
1 LLOctreeState<LLDrawable>::getChild(unsigned)
1 LLSpatialPartition::cull(LLCamera&, std::vector<LLDrawable*, std::allocator<LLDrawable*> >*, int)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeCull::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeCull::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeCull::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeCull::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeCull::visit(LLOctreeState<LLDrawable> const*)
1 LLOctreeCull::checkObjects(LLOctreeState<LLDrawable> const*, LLSpatialGroup const*)
1 LLCamera::AABBInFrustum(LLVector3 const&, LLVector3 const&)
1 LLCamera::AABBInFrustum(LLVector3 const&, LLVector3 const&)
28 idle()
9 LLViewerObjectList::update(LLAgent&, LLWorld&)
4 LLVOVolume::idleUpdate(LLAgent&, LLWorld&, double const&)
2 LLViewerObject::idleUpdate(LLAgent&, LLWorld&, double const&)
2 LLViewerObject::updateDrawable(int)
2 LLViewerObject::updateDrawable(int)
1 LLVOVolume::animateTextures()
1 LLMatrix4::translate(LLVector3 const&)
1 LLMatrix4::translate(LLVector3 const&)
1 LLVOVolume::idleUpdate(LLAgent&, LLWorld&, double const&)
3 LLVOAvatar::idleUpdate(LLAgent&, LLWorld&, double const&)
3 LLPolyMorphTarget::apply(ESex)
3 LLPolyMorphTarget::apply(ESex)
2 std::_Rb_tree_increment(std::_Rb_tree_node_base const*)
2 std::_Rb_tree_increment(std::_Rb_tree_node_base const*)
8 idle_network()
8 LLMessageSystem::checkMessages(long long)
5 LLMessageSystem::decodeData(unsigned char const*, LLHost const&)
2 process_compressed_object_update(LLMessageSystem*, void**)
2 LLViewerObjectList::processCompressedObjectUpdate(LLMessageSystem*, void**, e_object_update_type)
2 LLViewerObjectList::processObjectUpdate(LLMessageSystem*, void**, e_object_update_type, bool, bool)
2 LLViewerObjectList::processUpdateCore(LLViewerObject*, void**, unsigned, e_object_update_type, LLDataPacker*, int)
2 LLVOVolume::processUpdateMessage(LLMessageSystem*, void**, unsigned, e_object_update_type, LLDataPacker*)
1 LLVOVolume::setVolume(LLVolumeParams const&, int, bool)
1 LLPrimitive::setVolume(LLVolumeParams const&, int, bool)
1 LLViewerObject::setNumTEs(unsigned char)
1 LLPrimitive::setNumTEs(unsigned char)
1 LLPrimitive::setNumTEs(unsigned char)
1 LLViewerObject::processUpdateMessage(LLMessageSystem*, void**, unsigned, e_object_update_type, LLDataPacker*)
1 LLViewerObject::unpackParticleSource(LLDataPacker&, LLUUID const&)
1 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_M_destroy(std::allocator<char> const&)
1 free
1 szone_free
1 szone_free
2 process_object_update(LLMessageSystem*, void**)
2 LLViewerObjectList::processObjectUpdate(LLMessageSystem*, void**, e_object_update_type, bool, bool)
2 LLViewerObjectList::processUpdateCore(LLViewerObject*, void**, unsigned, e_object_update_type, LLDataPacker*, int)
1 LLVOAvatar::processUpdateMessage(LLMessageSystem*, void**, unsigned, e_object_update_type, LLDataPacker*)
1 LLVOAvatar::updateMeshTextures()
1 LLTexLayerSet::createComposite()
1 LLTexLayerSetBuffer::LLTexLayerSetBuffer[in-charge](LLTexLayerSet*, int, int, int)
1 LLDynamicTexture::LLDynamicTexture[not-in-charge](int, int, int, LLDynamicTexture::EOrder, int)
1 LLDynamicTexture::generateGLTexture()
1 LLImageGL::createGLTexture(int, LLImageRaw const*, int)
1 LLImageGL::createGLTexture(int, unsigned char const*, int, int)
1 LLImageGL::setImage(unsigned char const*, int)
1 glTexImage2D
1 glTexImage2D_Exec
1 gleTextureImagePut
1 gleExtractPixel_RGBA_Ubyte
1 gleExtractPixel_RGBA_Ubyte
1 LLVOVolume::processUpdateMessage(LLMessageSystem*, void**, unsigned, e_object_update_type, LLDataPacker*)
1 LLPrimitive::unpackTEMessage(LLMessageSystem*, char*, int)
1 LLPrimitive::setTEBumpShinyFullbright(unsigned char, unsigned char)
1 LLPrimitive::setTEBumpShinyFullbright(unsigned char, unsigned char)
1 std::vector<LLMsgVarData, std::allocator<LLMsgVarData> >::_M_fill_insert(__gnu_cxx::__normal_iterator<LLMsgVarData*, std::vector<LLMsgVarData, std::allocator<LLMsgVarData> > >, unsigned long, LLMsgVarData const&)
1 free
1 szone_free
1 szone_free
3 LLMsgData::~LLMsgData [in-charge]()
3 free
3 szone_free
3 szone_free
4 LLViewerImageList::updateImages(float)
2 LLViewerImageList::updateImagesDecodePriorities()
1 LLViewerImageList::removeImageFromList(LLViewerImage*)
1 std::_Rb_tree<LLPointer<LLViewerImage>, LLPointer<LLViewerImage>, std::_Identity<LLPointer<LLViewerImage> >, LLViewerImage::Compare, std::allocator<LLPointer<LLViewerImage> > >::erase(std::_Rb_tree_iterator<LLPointer<LLViewerImage> >, std::_Rb_tree_iterator<LLPointer<LLViewerImage> >)
1 std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
1 std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
1 LLViewerImageList::updateImagesDecodePriorities()
1 LLPipeline::dirtyPoolObjectTextures(std::set<LLViewerImage*, std::less<LLViewerImage*>, std::allocator<LLViewerImage*> > const&)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
1 LLViewerImageList::updateImagesFetchTextures(float)
1 std::_Rb_tree<LLViewerImage*, LLViewerImage*, std::_Identity<LLViewerImage*>, std::less<LLViewerImage*>, std::allocator<LLViewerImage*> >::_M_erase(std::_Rb_tree_node<LLViewerImage*>*)
1 std::_Rb_tree<LLViewerImage*, LLViewerImage*, std::_Identity<LLViewerImage*>, std::less<LLViewerImage*>, std::allocator<LLViewerImage*> >::_M_erase(std::_Rb_tree_node<LLViewerImage*>*)
1 std::_Rb_tree<LLViewerImage*, LLViewerImage*, std::_Identity<LLViewerImage*>, std::less<LLViewerImage*>, std::allocator<LLViewerImage*> >::_M_erase(std::_Rb_tree_node<LLViewerImage*>*)
1 std::_Rb_tree<LLViewerImage*, LLViewerImage*, std::_Identity<LLViewerImage*>, std::less<LLViewerImage*>, std::allocator<LLViewerImage*> >::_M_erase(std::_Rb_tree_node<LLViewerImage*>*)
1 free
1 szone_size
1 szone_size
3 LLViewerPartSim::updateSimulation()
2 LLViewerPartGroup::updateParticles(float)
1 LLViewerObjectList::killObject(LLViewerObject*)
1 LLViewerObject::markDead()
1 LLDrawable::cleanupReferences()
1 LLPipeline::unlinkDrawable(LLDrawable*)
1 LLSpatialPartition::remove(LLDrawable*, LLSpatialGroup*)
1 LLSpatialGroup::removeObject(LLDrawable*, int)
1 LLTreeNode<LLDrawable>::remove(LLDrawable*)
1 LLOctreeState<LLDrawable>::remove(LLDrawable*)
1 std::_Rb_tree<LLPointer<LLDrawable>, LLPointer<LLDrawable>, std::_Identity<LLPointer<LLDrawable> >, std::less<LLPointer<LLDrawable> >, std::allocator<LLPointer<LLDrawable> > >::find(LLPointer<LLDrawable> const&)
1 std::_Rb_tree<LLPointer<LLDrawable>, LLPointer<LLDrawable>, std::_Identity<LLPointer<LLDrawable> >, std::less<LLPointer<LLDrawable> >, std::allocator<LLPointer<LLDrawable> > >::find(LLPointer<LLDrawable> const&)
1 LLViewerPartGroup::removePart(int)
1 std::vector<LLPointer<LLViewerPart>, std::allocator<LLPointer<LLViewerPart> > >::erase(__gnu_cxx::__normal_iterator<LLPointer<LLViewerPart>*, std::vector<LLPointer<LLViewerPart>, std::allocator<LLPointer<LLViewerPart> > > >)
1 std::vector<LLPointer<LLViewerPart>, std::allocator<LLPointer<LLViewerPart> > >::erase(__gnu_cxx::__normal_iterator<LLPointer<LLViewerPart>*, std::vector<LLPointer<LLViewerPart>, std::allocator<LLPointer<LLViewerPart> > > >)
1 LLViewerPartSourceScript::update(float)
1 LLViewerPartSim::addPart(LLViewerPart*)
1 LLViewerPartSim::put(LLViewerPart*)
1 LLViewerPartGroup::addPart(LLViewerPart*, float)
1 std::vector<LLPointer<LLViewerPart>, std::allocator<LLPointer<LLViewerPart> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<LLPointer<LLViewerPart>*, std::vector<LLPointer<LLViewerPart>, std::allocator<LLPointer<LLViewerPart> > > >, LLPointer<LLViewerPart> const&)
1 std::vector<LLPointer<LLViewerPart>, std::allocator<LLPointer<LLViewerPart> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<LLPointer<LLViewerPart>*, std::vector<LLPointer<LLViewerPart>, std::allocator<LLPointer<LLViewerPart> > > >, LLPointer<LLViewerPart> const&)
1 LLAgent::updateCamera()
1 LLAgent::calcFocusPositionTargetGlobal()
1 LLControlGroup::getVector3(LLStringBase<char> const&)
1 LLControlGroup::getControl(LLStringBase<char> const&)
1 std::_Rb_tree<LLStringBase<char>, std::pair<LLStringBase<char> const, LLPointer<LLControlBase> >, std::_Select1st<std::pair<LLStringBase<char> const, LLPointer<LLControlBase> > >, std::less<LLStringBase<char> >, std::allocator<std::pair<LLStringBase<char> const, LLPointer<LLControlBase> > > >::find(LLStringBase<char> const&)
1 std::_Rb_tree<LLStringBase<char>, std::pair<LLStringBase<char> const, LLPointer<LLControlBase> >, std::_Select1st<std::pair<LLStringBase<char> const, LLPointer<LLControlBase> > >, std::less<LLStringBase<char> >, std::allocator<std::pair<LLStringBase<char> const, LLPointer<LLControlBase> > > >::find(LLStringBase<char> const&)
1 LLCallbackList::callFunctions()
1 LLFolderView::idle(void*)
1 get_clock_count()
1 gettimeofday
1 __gettimeofday
1 __nanotime
1 __nanotime
1 LLWorld::updateRegions(float)
1 LLViewerRegion::idleUpdate(float)
1 LLViewerParcelOverlay::idleUpdate(bool)
1 LLViewerParcelOverlay::updatePropertyLines()
1 LLViewerParcelOverlay::addPropertyLine(LLDynamicArray<LLVector3, (int)256>&, LLDynamicArray<LLColor4U, (int)256>&, LLDynamicArray<LLVector2, (int)256>&, float, float, unsigned, LLColor4U const&)
1 LLViewerParcelOverlay::addPropertyLine(LLDynamicArray<LLVector3, (int)256>&, LLDynamicArray<LLColor4U, (int)256>&, LLDynamicArray<LLVector2, (int)256>&, float, float, unsigned, LLColor4U const&)
1 LLWorld::updateVisibilities()
1 LLSurface::updatePatchVisibilities(LLAgent&)
1 LLSurfacePatch::updateVisibility()
1 LLSurface::getOriginAgent() const
1 LLAgent::getPosAgentFromGlobal(LLVector3d const&) const
1 LLAgent::getPosAgentFromGlobal(LLVector3d const&) const
2 LLTextureFetch::update(unsigned)
2 LLWorkerThread::update(unsigned)
2 LLQueuedThread::updateQueue(unsigned)
2 LLQueuedThread::processNextRequest()
2 ms_sleep(long)
2 mach_wait_until
2 mach_wait_until
1 LLPumpIO::pump()
1 LLPumpIO::processChain(LLPumpIO::LLChainInfo&)
1 LLURLRequest::process_impl(LLChannelDescriptors const&, boost::shared_ptr<LLBufferArray>&, bool&, LLSD&, LLPumpIO*)
1 curl_multi_perform
1 multi_runsingle
1 Curl_https_connecting
1 Curl_ossl_connect_common
1 ssl23_connect
1 ssl3_connect
1 ssl_verify_cert_chain
1 X509_verify_cert
1 internal_verify
1 X509_verify
1 ASN1_item_verify
1 EVP_VerifyFinal
1 RSA_verify
1 RSA_eay_public_decrypt
1 BN_mod_exp_mont
1 BN_mod_mul_montgomery
1 BN_from_montgomery
1 bn_mul_add_words
1 bn_mul_add_words
100 Thread_1003
100 _pthread_body
100 PrivateMPEntryPoint
100 kevent
100 kevent
100 Thread_1103
100 _pthread_body
100 PrivateMPEntryPoint
100 TNodeSyncTask::SyncTaskProc(void*)
100 MPWaitOnQueue
100 semaphore_wait_signal_trap
100 semaphore_wait_signal_trap
100 Thread_1203
100 _pthread_body
100 dummy_worker
100 LLThread::staticRun(apr_thread_t*, void*)
100 LLQueuedThread::run()
100 LLThread::checkPause()
100 semaphore_wait_signal_trap
100 semaphore_wait_signal_trap
100 Thread_1303
100 _pthread_body
100 dummy_worker
100 LLThread::staticRun(apr_thread_t*, void*)
100 LLQueuedThread::run()
100 LLThread::checkPause()
100 semaphore_wait_signal_trap
100 semaphore_wait_signal_trap
100 Thread_1403
100 _pthread_body
100 dummy_worker
100 LLThread::staticRun(apr_thread_t*, void*)
100 LLQueuedThread::run()
98 LLThread::checkPause()
98 semaphore_wait_signal_trap
98 semaphore_wait_signal_trap
2 LLQueuedThread::processNextRequest()
2 LLWorkerThread::WorkRequest::processRequest()
2 LLImageWorker::doWork(int)
1 LLImageJ2C::decode(LLImageRaw*, float)
1 LLImageJ2C::decode(LLImageRaw*, float, int, int)
1 LLImageJ2CKDU::decodeImpl(LLImageJ2C&, LLImageRaw&, float, int, int)
1 LLKDUDecodeState::LLKDUDecodeState[in-charge](kdu_tile, unsigned char*, int)
1 kdu_synthesis::kdu_synthesis[in-charge](kdu_resolution, kdu_sample_allocator*, bool, float)
1 kd_synthesis::kd_synthesis[in-charge](kdu_resolution, kdu_sample_allocator*, bool, float)
1 kdu_kernels::~kdu_kernels [in-charge]()
1 free
1 __spin_lock
1 __spin_lock
1 LLImageJ2C::decode(LLImageRaw*, float, int, int)
1 LLImageJ2CKDU::decodeImpl(LLImageJ2C&, LLImageRaw&, float, int, int)
1 LLKDUDecodeState::processTileDecode(float, int)
1 kd_synthesis::pull(kdu_line_buf&, bool)
1 kd_synthesis::horizontal_synthesis(kd_line_cosets&)
1 kd_decoder::pull(kdu_line_buf&, bool)
1 kd_decoder::decode_row_of_blocks()
1 kd_decoder::decode_row_of_blocks()
100 Thread_1503
100 _pthread_body
100 dummy_worker
100 LLThread::staticRun(apr_thread_t*, void*)
100 LLQueuedThread::run()
100 LLThread::checkPause()
99 semaphore_wait_signal_trap
99 semaphore_wait_signal_trap
1 pthread_cond_wait
1 pthread_cond_wait
100 Thread_1603
100 _pthread_body
100 __ape_agent
100 mach_msg_trap
100 mach_msg_trap
100 Thread_1703
100 _pthread_body
100 ah_serv_loop
100 mach_msg_trap
100 mach_msg_trap
100 Thread_1803
100 _pthread_body
100 gloInitializeLibrary
100 mach_msg_trap
100 mach_msg_trap
100 Thread_1903
100 _pthread_body
100 PR_Select
100 nsThread::Main(void*)
100 nsSocketTransportService::Run()
100 nsSocketTransportService::Poll(unsigned*)
100 PR_Poll
100 PR_OpenDir
100 select
100 select
100 Thread_1a03
100 _pthread_body
100 CAPThread::Entry(CAPThread*)
100 HALRunLoop::OwnThread(void*)
100 CFRunLoopRunInMode
100 CFRunLoopRunSpecific
100 mach_msg_trap
100 mach_msg_trap
100 Thread_1b03
100 _pthread_body
100 CAPThread::Entry(CAPThread*)
100 HP_IOThread::ThreadEntry(HP_IOThread*)
100 HP_IOThread::WorkLoop()
97 CAGuard::WaitUntil(unsigned long long)
97 CAGuard::WaitFor(unsigned long long)
96 semaphore_timedwait_signal_trap
96 semaphore_timedwait_signal_trap
1 pthread_cond_timedwait_relative_np
1 pthread_cond_timedwait_relative_np
3 HP_IOThread::PerformIO(AudioTimeStamp const&)
2 IOA_Device::CallIOProcs(AudioTimeStamp const&, AudioTimeStamp const&, AudioTimeStamp const&)
1 HP_IOProc::Call(AudioTimeStamp const&, AudioTimeStamp const&, AudioBufferList const*, AudioTimeStamp const&, AudioBufferList*)
1 AudioDeviceIOCallback
1 BigEndian16DecompDispatch
1 SoundComponentGetSourceData
1 CallComponentDispatch
1 MixerDispatch
1 BigEndian16DecompDispatch
1 InvokeSoundParamUPP
1 SoundComplete
1 ProcessNextCmd
1 ProcessCmd
1 InvokeSndCallBackUPP
1 CarbonSndPlayDoubleBufferCallBackProc
1 FSOUND_Output_Mac_Callback
1 FSOUND_Software_Fill
1 windCallback(void*, void*, int, void*)
1 windCallback(void*, void*, int, void*)
1 IOA_SingleDevice::WriteOutputData(AudioTimeStamp const&, unsigned long)
1 iokit_user_client_trap
1 iokit_user_client_trap
1 std::vector<HP_IOProc, std::allocator<HP_IOProc> >::size() const
1 std::vector<HP_IOProc, std::allocator<HP_IOProc> >::size() const
100 Thread_1c03
100 _pthread_body
100 PrivateMPEntryPoint
100 FSOUND_Stream_UpdateThread
97 FSOUND_Time_Sleep
97 mach_wait_until
97 mach_wait_until
2 FSOUND_Stream_UpdateThread
1 FSOUND_Stream_Update
1 FSOUND_Stream_Flip
1 FSOUND_Stream_Read
1 FSOUND_Stream_ReadMpeg_Net
1 FSOUND_Mpeg_DecodeFrame
1 FSOUND_Mpeg_Decode_Layer3
1 FSOUND_Mpeg_Decode_Layer3
100 Thread_1d03
100 _pthread_body
100 PR_Select
100 nsThread::Main(void*)
100 TimerThread::Run()
100 PR_WaitCondVar
99 PR_Unlock
99 semaphore_timedwait_signal_trap
99 semaphore_timedwait_signal_trap
1 semaphore_wait_signal_trap
1 semaphore_wait_signal_trap
100 Thread_1e03
100 _pthread_body
100 PrivateMPEntryPoint
100 FSOUND_AsyncThreadCallback
99 FSOUND_Time_Sleep
99 mach_wait_until
99 mach_wait_until
1 FSOUND_AsyncThreadCallback
100 Thread_1f03
100 _pthread_body
100 CarbonSelectThreadFunc
100 syscall
100 syscall
100 Thread_2003
100 _pthread_body
100 CarbonOperationThreadFunc
100 semaphore_wait_signal_trap
100 semaphore_wait_signal_trap
100 Thread_2103
100 _pthread_body
100 PrivateMPEntryPoint
100 FSOUND_Sockbuf_UpdateThread
99 FSOUND_Time_Sleep
99 mach_wait_until
99 mach_wait_until
1 FSOUND_Sockbuf_GetBufferStatsPercent
1 FSOUND_Sockbuf_GetBufferStatsPercent
Total number in stack (recursive counted multiple, when >=5):
26 gldGetString
18 _pthread_body
16 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*)
13 mach_msg_trap
10 gldUpdateDispatch
8 free
8 gldDestroyVertexArray
8 gldGetQueryInfo
8 io_connect_map_memory
7 semaphore_wait_signal_trap
6 LLSpatialGroup::rebound()
6 LLView::draw()
6 glDrawRangeElements
6 gleDrawArraysOrElements_IMM_Exec
6 gleDrawArraysOrElements_VBO_Exec
5 PrivateMPEntryPoint
5 glDrawElements
5 gldInitDispatch
5 gleDrawArraysOrElements_Core
5 szone_free
Sort by top of stack, same collapsed (when >= 5):
semaphore_wait_signal_trap 598
mach_msg_trap 412
mach_wait_until 297
semaphore_timedwait_signal_trap 195
kevent 100
select 100
syscall 100
gldGetString 7
szone_free 7
Sample analysis of process 1451 written to file /dev/stdout
Sampling process 1451 each 10 msecs 100 times
More information about the SLDev
mailing list