presentationhost.exe在50%CPU上运行 [英] presentationhost.exe running at 50% CPU

查看:145
本文介绍了presentationhost.exe在50%CPU上运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们有一个用户在运行我们的WPF应用程序时看到了Presentationhost.exe的高CPU使用率.用户启动WPF应用程序,CPU立即转到50%,UI挂起.这仅发生在运行XP的一台笔记本电脑上.

我让用户运行adplus -hang,这是使用CPU的线程的调用堆栈.看来问题可能出在wpfgfx_v0300.dll

感谢您寻找...

Brian



0:000> !runaway
用户模式时间
线程时间
15:15c0 0天0:01:57.656
0:12b4 0天0:00:00.843
14:158c 0天0:00:00.015
13:1584 0天0:00:00.000
12:1580 0天0:00:00.000
11:14f8 0天0:00:00.000
10:14f4 0天0:00:00.000
9:14ec 0天0:00:00.000
8:14e8 0天0:00:00.000
7:1424 0天0:00:00.000
6:1420 0天0:00:00.000
5:130c 0天0:00:00.000
4:1304 0天0:00:00.000
3:1300 0天0:00:00.000
2:12fc 0天0:00:00.000
1:12f8 0天0:00:00.000
0:000> 〜15e!dumpstack
OS线程ID:0x15c0(15)
当前帧:(JitHelp:CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE)
ChildEBP RetAddr调用方,被调用方
0579f0e8 578484c3(方法描述0x577c9d94 +0 Internal.Invariant.Assert(Boolean)),调用(JitHelp:CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE)
0579f0f0 547f6621(MethodDesc 0x546a5fbc + 0x31 MS.Internal.FontCache.ElementCacher.get_Mapping()),调用(MethodDesc 0.577. Invariant.Assert(Boolean))
0579f10c 547f6945(MethodDesc 0x546a60d4 + 0x35 MS.Internal.FontCache.HashTable.GetElementInfo(Int32 * ByRef,ElementHeader * ByRef,MS.Internal.FontCache.CheckedPointer ByRef)),调用(MethodDesc 0x546a5fbc +0 MS.Internal.FontCache.ElementCacher.get_Mapping())
0579f134 547f677a(MethodDesc 0x546a6140 + 0xaa MS.Internal.FontCache.HashTable.Lookup(MS.Internal.FontCache.IFontCacheElement,Boolean)),调用( MethodDesc 0x546a60d4 +0 MS.Internal.FontCache.HashTable.GetElementInfo(Int32 * ByRef,ElementHeader * ByR ef,MS.Internal.FontCache.CheckedPointer ByRef))
0579f160 792d9963(MethodDesc 0x7910eb1c + 0x13 System.SZArrayHelper.get_Item [[System.UInt16,mscorlib]](Int32)),调用mscorwks!JIT_IsInstanceOfArray
0579f174 547feb27(MethodDesc 0x546a8b58 + 0x277 MS.Internal.FontCache.FontCacheAccessor.GetGlyphs(MS.Internal.FontCache.BaseGlyphElement,System.Collections.Generic.IList`1< UInt16> ;, Void * [])),调用(MethodDesc + 140x)546 0 MS.Internal.FontCache.HashTable.Lookup(MS.Internal.FontCache.IFontCacheElement,布尔))
0579f1bc 547fe7a7(MethodDesc 0x54617644 + 0xd7 MS.Internal.FontCache.FontCacheAccessor.GetBitmaps(System.String,Int32, ,Int32,UInt16,UInt16,UInt16,Int32,UInt16 [],Void * [])),调用(MethodDesc 0x546a8b58 +0 MS.Internal.FontCache.FontCacheAccessor.GetGlyphs(MS.Internal.FontCache.BaseGlyphElement,System.Collections.).通用IList`1 UInt16,Void * []))
0579f1f0 547fe682(MethodDesc 0x54617638 + 0x82 MS.Internal.FontCache.FontCacheAccessor.Cre ateGlyphBitmapsHelper(IntPtr,FontFaceID,UInt16 [],UInt32)),调用(MethodDesc 0x54617644 +0 MS.Internal.FontCache.FontCacheAccessor.GetBitmaps(System.String,Int32,Int32,Int32,UInt16,UInt16,UInt16,Int32 ],Void * []))
0579f240 547fe580(MethodDesc 0x5461762c + 0xa0 MS.Internal.FontCache.FontCacheAccessor.CreateGlyphsAtRenderTime(IntPtr,IntPtr,UInt16)),调用(MethodDesc 0x54617638 +0 MS.Internal.FontCache .CreateGlyphBitmapsHelper(IntPtr,FontFaceID,UInt16 [],UInt32))
0579f26c 547fe482(MethodDesc 0x546a8ae4 + 0x42 MS.Internal.FontCache.FontCacheAccessor.CreateGlyphsCallback(IntPtr,IntPtr,UIntMethod)0(0176) .Internal.FontCache.FontCacheAccessor.CreateGlyphsAtRenderTime(IntPtr,IntPtr,UInt16))
0579f29c 79e71b4c mscorwks!CallDescrWorker + 0x33
0579f2b0 79e821b1 mscorwks!CallDescrcorera3fa,CallDescrcorera3,0579f2b0 79e821b1 mscorwks!CallDescrcorera3 !ForwardCallToManagedMethod + 0x55,调用msc orwks!CallDescrWorkerWithHandler
0579f350 79fa9a32 mscorwks!DoUMThunkCallWorker + 0x1de,调用mscorwks!ForwardCallToManagedMethod
0579f3e4 79e79cba mscorwks!ClrFlsSetValue + 0x57,调用mscorwks!调用mscorwks!_EH_epilog3
0579f44c 7a0c9b40 mscorwks!DoUMThunkCall + 0x1e8,调用mscorwks!DoUMThunkCallWorker
0579f4d0 4fe7341e d3d9!CD3DDDIDX9 d:c3d9d:c3d9d!调用mscorwks!DoUMThunkCall
0579f55c 540343e4 wpfgfx_v0300!CMilSlaveGlyphCache :: EnsureGlyphBitmapsArePresent + 0x5d
0579f57c 540343e4 wpfgfx_v0300!CMilSlaveGlyphCache :: EnsureGlyphBitmapsArePresent + 0x5d
0579f5e0 54031df7 wpfgfx_v0300!CGlyphRunResource :: CreateRealization + 0x1bf,呼吁wpfgfx_v0300! CMilSlaveGlyphCache :: EnsureGlyphBitmapsArePresent
0579f610 54032289 wpfgfx_v0300!CGlyphRunResource :: GetAvailableScale + 0x1a0,调用wpfgfx_v0300!CGly phRunResource :: CreateRealization
0579f644 4fe52ba5 d3d9!CD3DBase :: SetTransform + 0xb5,调用ntdll!RtlLeaveCriticalSection
0579f68c 54031063 wpfgfx_v0300!CBaseGlyphRunPainter :: Init + 0x4! 54037c69 wpfgfx_v0300!CD3DGlyphRunPainter ::漆+ 0xa9,呼吁wpfgfx_v0300!CBaseGlyphRunPainter ::初始化
0579f6f0 540501b9 wpfgfx_v0300!CD3DDeviceLevel1 :: SetSurfaceToClippingMatrix + 0xc4,呼吁wpfgfx_v0300!CHwRenderStateManager :: Set2DTransformForFixedFunction
0579f708 54055a54 wpfgfx_v0300!CD3DDeviceLevel1 :: SetClipRect + 0x17b,呼吁wpfgfx_v0300!CCodeTracer :: IsTracingEnabled
0579f770 540374fd wpfgfx_v0300!CHwSurfaceRenderTarget :: DrawGlyphs + 0x191,呼吁wpfgfx_v0300!CD3DGlyphRunPainter ::涂料
0579f844 5400d780 wpfgfx_v0300!CBrushRealizer :: CBrushRealizer + 0x48,呼吁wpfgfx_v0300 !CMilAlphaMaskWrapper :: SetVisualPreviousOuterBounds
0579f864 540129ea wpfgfx_v0300!CBrushRealizer :: CreateResourceRealizer + 0x4 4
0579f8a8 7818进入了msvcr80!_handle_exc + 0x1d2,调用了msvcr80!_set_statfp
0579f8d0 78190ff7 msvcr80!_87except + 0xc4,调用了msvcr80! NotNeeded> :: Intersect + 0x6f,调用wpfgfx_v0300!TMilRect< float,MilRectF,RectUniqueness :: NotNeeded> :: IsEmpty
0579f8e8 5400e8da wpfgfx_v0300! > 0579f8fc 54013318 wpfgfx_v0300 CMetaIterator :: CMetaIterator + 0X47,主叫wpfgfx_v0300 TMilRect<!浮子,MilRectF,RectUniqueness :: NotNeeded>!::的IsEmpty
0579f914 540375a4 wpfgfx_v0300 CHwDisplayRenderTarget :: DrawGlyphs +为0x1c,调用wpfgfx_v0300 CHwSurfaceRenderTarget :: DrawGlyphs
0579f928 54030778 wpfgfx_v0300!CMetaRenderTarget :: DrawGlyphs + 0xb6
0579f958 54012418 wpfgfx_v0300!CDrawingContext :: DrawRectangle + 0x102,调用wpfgfxs_v0300!CCodeTracer:Enabled 5359 eMatrix :: Transform2DBounds + 0x5f,调用wpfgfx_v0300!CBaseMatrix :: Transform
0579f9e0 54030683 wpfgfx_v0300!CDrawingContext :: DrawGlyphRun + 0x1de
0br37fa38 540124f0 wpfgfxxv0_a0fa!300 <4! InflateRectF_InPlace + 0xb,调用wpfgfx_v0300!InflateRectF_InPlace
0579fa84 5400f7b4 wpfgfx_v0300!TMilRect< float,MilRectF,RectUniqueness :: NotNeededed< g:Emp:t:g:Emp:t,g:Fent:ect:PF_InPlace&t:n:ectsect + 0x6,:: Intersect + 0x6
0579fa88 5400f816 wpfgfx_v0300!CDrawingContext :: GetClippedWorldSpaceBounds + 0x5c,调用wpfgfx_v0300!TMilRect< float,MilRectF,RectUniqueness :: NotNeeded> :: Intersect 0579fadc 54012562 wpfgfx_v0300!CMilVisual :: RenderContent + 0x2a,调用wpfgfx_v0300!CMilSlaveRenderData :: Draw
0579faf4 5400f950 wpfgfx_v0300 0579fbc4 540105da wpfgfx_v0300 CWatermarkStack<!!CModelWalker :: C框架,64,2,10> ::推+ 0xdf
0579fbd8 54009f0d wpfgfx_v0300!CPtrArrayBase :: operator [] + 0x7,调用wpfgfx_v0300!CPtrMultisetBase :: GetCount
0579fbdc 5400f6c5 wpfgfx_v0300!CMilVisual :: GetChildAt + 0x21,调用wpfgfx_v <0300!CP! !CGraphWalker :: GotoFirstChild + 0x61
0579fc0c 5400e646 wpfgfx_v0300!CGraphIterator :: Walk + 0x32
0579fc34 5400f622 wpfgfx_v0300!CDrawingContext :: DrawVisualTree + 0x324,调用wpfgfx_v0:54!0579 !CPreComputeContext :: ConvertInnerToOuterBounds + 0xbf,调用wpfgfx_v0300!TMilRect< float,MilRectF,RectUniqueness :: NotNeeded> :: IsWellOrdered
0579fcd0 54009f0d wpfgfx_v0:+ Base:oper:Count:Array:[Base:Count:] br/> 0579fcd4 5400f6c5 wpfgfx _v0300!CMilVisual :: GetChildAt + 0x21,调用wpfgfx_v0300!CPtrArrayBase :: operator []
0579fcdc 54009f0d wpfgfx_v0300!CPtrArrayBase :: operator [] + 0x7,调用wpfgfxx_v0300!CPtr 0579fcf0 5400f688 wpfgfx_v0300!CGraphWalker :: GotoSibling + 0x4f
0579fd00 5400eba9 wpfgfxx_v0300!C; WaterGraphing + 0x4f
0579fd00 5400eba9 wpfgfxx_v0300!C CModelWalker :: CFrame,64,2,10> :: Optimize
0579fd08 5400ebc1 wpfgfx_v0300!CGraphIterator :: Walk + 0x110,调用wpfgfx_v0300!CGraphWalker :: EndWalk
0579fd30 5400_cbComp w:Prec:FContextC0W0c0Prec ,调用wpfgfx_v0300!CWatermarkStack< TMilRect_< float,MilRectF,MilPointAndSizeF,RectUniqueness :: NotNeeded>,8,2,8> :: Clear
0579fd44 5400ecfa wpfgfx_v0300PrePrecision +:CDrawingContext ::预计算
0579fd5c 5400eef8 wpfgfx_v0300!CDirtyRegion2: :GetDirtyRegion + 0x3b,调用msvcr80!memset
0579fd68 5400ef14 wpfgfx_v0300!CDirtyRegion2 :: GetDirtyRegion + 0x57,调用wpfgfx_v0300! :: Render + 0x324,调用wpfgfx_v0300!CDrawingContext :: DrawVisualTree
0579fda0 54007231 wpfgfx_v0300!CDisplaySet :: HasDisplayStateChanged + 0x10,调用wpfgfx_v0300!CDisplaySet :: IsUpToDate
0579fdfc:5!调用wpfgfx_v0300!CDrawingContext :: Render
0579fe54 540076e0 wpfgfx_v0300!FreeBatch + 0x14,调用wpfgfx_v0300!COcclusionContext ::`标量删除析构函数'
0579fe60 54007391 wpfgfxx_v0300!B br/> 0579fea8 540073c4 wpfgfx_v0300!CComposition :: ProcessPartitionCommand + 0x70,调用wpfgfx_v0300!CComposition :: ProcessCommandBatch
0579febc 5400be78 wpfgfx_v0300!CRenderTargetManager :: Render + 0x2e
057 9fedc 54007523 wpfgfx_v0300!CComposition :: Render + 0x21,调用wpfgfx_v0300!CRenderTargetManager :: Render
0579fef4 540075d6 wpfgfx_v0300!CComposition :: ProcessComposition + 0xf3,调用wpfgfx_v0300!CComment:br:fff_v:0br:cff300_C:0br!c:300 _f0_render_v0300R:Cent <5> :LogEvent + 0x26,调用kernel32!InterlockedCompareExchange
0579ff2c 5400700e wpfgfx_v0300!CPartitionManager :: LogEvent + 0x26,调用kernel32!InterlockedCompareExchange
0579ff34 5400700e wpfgfx_v0300!CPartitionManager :: LogEvent + 0x26, > 0579ff38 5400700e wpfgfx_v0300!CPartitionManager :: LogEvent + 0x26,调用kernel32!InterlockedCompareExchange
0579ff58 54007667 wpfgfx_v0300!CComposition :: Compose + 0x3e,调用wpfgfx_v0300!CComposition :: Processffff6 <0/> + 0x1c
0579ff88 5400717b wpfgfx_v0300!CPartitionThread :: Run + 0x48,调用wpfgfx_v0300!CPartitionThread :: RenderPartition
0579ff9c 5400b 68e wpfgfx_v0300!CPartitionThread :: ThreadMain + 0x1e
0579ffa0 79e8209e mscorwks!Module :: EnsureActive + 0x5f,调用mscorwks!DomainFile :: EnsureLoadLevel
0579ffb4 7c80b729 kernel32!BaseThreadStart + 0ffffe79e7cor7k Module :: EnsureActive + 0x5f,调用mscorwks!DomainFile :: EnsureLoadLevel

We have one user that is seeing high CPU usage with presentationhost.exe when running our WPF app. The user starts the WPF app, the CPU goes immediately to 50% and the UI hangs. This is happening on just one laptop running XP.

I got the user to run adplus -hang and this is the call stack of the thread that is using the CPU. it looks like the problem might be in wpfgfx_v0300.dll

Thanks for looking...

Brian



0:000> !runaway
 User Mode Time
  Thread       Time
  15:15c0      0 days 0:01:57.656
   0:12b4      0 days 0:00:00.843
  14:158c      0 days 0:00:00.015
  13:1584      0 days 0:00:00.000
  12:1580      0 days 0:00:00.000
  11:14f8      0 days 0:00:00.000
  10:14f4      0 days 0:00:00.000
   9:14ec      0 days 0:00:00.000
   8:14e8      0 days 0:00:00.000
   7:1424      0 days 0:00:00.000
   6:1420      0 days 0:00:00.000
   5:130c      0 days 0:00:00.000
   4:1304      0 days 0:00:00.000
   3:1300      0 days 0:00:00.000
   2:12fc      0 days 0:00:00.000
   1:12f8      0 days 0:00:00.000
0:000> ~15e !dumpstack
OS Thread Id: 0x15c0 (15)
Current frame:  (JitHelp: CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE)
ChildEBP RetAddr  Caller,Callee
0579f0e8 578484c3 (MethodDesc 0x577c9d94 +0x13 MS.Internal.Invariant.Assert(Boolean)), calling  (JitHelp: CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE)
0579f0f0 547f6621 (MethodDesc 0x546a5fbc +0x31 MS.Internal.FontCache.ElementCacher.get_Mapping()), calling (MethodDesc 0x577c9d94 +0 MS.Internal.Invariant.Assert(Boolean))
0579f10c 547f6945 (MethodDesc 0x546a60d4 +0x35 MS.Internal.FontCache.HashTable.GetElementInfo(Int32* ByRef, ElementHeader* ByRef, MS.Internal.FontCache.CheckedPointer ByRef)), calling (MethodDesc 0x546a5fbc +0 MS.Internal.FontCache.ElementCacher.get_Mapping())
0579f134 547f677a (MethodDesc 0x546a6140 +0xaa MS.Internal.FontCache.HashTable.Lookup(MS.Internal.FontCache.IFontCacheElement, Boolean)), calling (MethodDesc 0x546a60d4 +0 MS.Internal.FontCache.HashTable.GetElementInfo(Int32* ByRef, ElementHeader* ByRef, MS.Internal.FontCache.CheckedPointer ByRef))
0579f160 792d9963 (MethodDesc 0x7910eb1c +0x13 System.SZArrayHelper.get_Item[[System.UInt16, mscorlib]](Int32)), calling mscorwks!JIT_IsInstanceOfArray
0579f174 547feb27 (MethodDesc 0x546a8b58 +0x277 MS.Internal.FontCache.FontCacheAccessor.GetGlyphs(MS.Internal.FontCache.BaseGlyphElement, System.Collections.Generic.IList`1<UInt16>, Void*[])), calling (MethodDesc 0x546a6140 +0 MS.Internal.FontCache.HashTable.Lookup(MS.Internal.FontCache.IFontCacheElement, Boolean))
0579f1bc 547fe7a7 (MethodDesc 0x54617644 +0xd7 MS.Internal.FontCache.FontCacheAccessor.GetBitmaps(System.String, Int32, Int32, Int32, UInt16, UInt16, UInt16, Int32, UInt16[], Void*[])), calling (MethodDesc 0x546a8b58 +0 MS.Internal.FontCache.FontCacheAccessor.GetGlyphs(MS.Internal.FontCache.BaseGlyphElement, System.Collections.Generic.IList`1<UInt16>, Void*[]))
0579f1f0 547fe682 (MethodDesc 0x54617638 +0x82 MS.Internal.FontCache.FontCacheAccessor.CreateGlyphBitmapsHelper(IntPtr, FontFaceID, UInt16[], UInt32)), calling (MethodDesc 0x54617644 +0 MS.Internal.FontCache.FontCacheAccessor.GetBitmaps(System.String, Int32, Int32, Int32, UInt16, UInt16, UInt16, Int32, UInt16[], Void*[]))
0579f240 547fe580 (MethodDesc 0x5461762c +0xa0 MS.Internal.FontCache.FontCacheAccessor.CreateGlyphsAtRenderTime(IntPtr, IntPtr, UInt16)), calling (MethodDesc 0x54617638 +0 MS.Internal.FontCache.FontCacheAccessor.CreateGlyphBitmapsHelper(IntPtr, FontFaceID, UInt16[], UInt32))
0579f26c 547fe482 (MethodDesc 0x546a8ae4 +0x42 MS.Internal.FontCache.FontCacheAccessor.CreateGlyphsCallback(IntPtr, IntPtr, UInt16)), calling (MethodDesc 0x5461762c +0 MS.Internal.FontCache.FontCacheAccessor.CreateGlyphsAtRenderTime(IntPtr, IntPtr, UInt16))
0579f29c 79e71b4c mscorwks!CallDescrWorker+0x33
0579f2b0 79e821b1 mscorwks!CallDescrWorkerWithHandler+0xa3, calling mscorwks!CallDescrWorker
0579f330 79fa987a mscorwks!ForwardCallToManagedMethod+0x55, calling mscorwks!CallDescrWorkerWithHandler
0579f350 79fa9a32 mscorwks!DoUMThunkCallWorker+0x1de, calling mscorwks!ForwardCallToManagedMethod
0579f3e4 79e79cba mscorwks!ClrFlsSetValue+0x57, calling mscorwks!_EH_epilog3
0579f41c 79fd8733 mscorwks!Thread::EnterContextRestricted+0x21d, calling mscorwks!_EH_epilog3
0579f44c 7a0c9b40 mscorwks!DoUMThunkCall+0x1e8, calling mscorwks!DoUMThunkCallWorker
0579f4d0 4fe7341e d3d9!CD3DDDIDX9::SurfaceBlt+0xe, calling d3d9!CD3DDDIDX6::GetHalBufferPointer
0579f52c 003c607d 003c607d, calling mscorwks!DoUMThunkCall
0579f55c 540343e4 wpfgfx_v0300!CMilSlaveGlyphCache::EnsureGlyphBitmapsArePresent+0x5d
0579f57c 540343e4 wpfgfx_v0300!CMilSlaveGlyphCache::EnsureGlyphBitmapsArePresent+0x5d
0579f5e0 54031df7 wpfgfx_v0300!CGlyphRunResource::CreateRealization+0x1bf, calling wpfgfx_v0300!CMilSlaveGlyphCache::EnsureGlyphBitmapsArePresent
0579f610 54032289 wpfgfx_v0300!CGlyphRunResource::GetAvailableScale+0x1a0, calling wpfgfx_v0300!CGlyphRunResource::CreateRealization
0579f644 4fe52ba5 d3d9!CD3DBase::SetTransform+0xb5, calling ntdll!RtlLeaveCriticalSection
0579f68c 54031063 wpfgfx_v0300!CBaseGlyphRunPainter::Init+0x1ad, calling wpfgfx_v0300!CGlyphRunResource::GetAvailableScale
0579f6d4 54037c69 wpfgfx_v0300!CD3DGlyphRunPainter::Paint+0xa9, calling wpfgfx_v0300!CBaseGlyphRunPainter::Init
0579f6f0 540501b9 wpfgfx_v0300!CD3DDeviceLevel1::SetSurfaceToClippingMatrix+0xc4, calling wpfgfx_v0300!CHwRenderStateManager::Set2DTransformForFixedFunction
0579f708 54055a54 wpfgfx_v0300!CD3DDeviceLevel1::SetClipRect+0x17b, calling wpfgfx_v0300!CCodeTracer::IsTracingEnabled
0579f770 540374fd wpfgfx_v0300!CHwSurfaceRenderTarget::DrawGlyphs+0x191, calling wpfgfx_v0300!CD3DGlyphRunPainter::Paint
0579f844 5400d780 wpfgfx_v0300!CBrushRealizer::CBrushRealizer+0x48, calling wpfgfx_v0300!CMilAlphaMaskWrapper::SetVisualPreviousOuterBounds
0579f864 540129ea wpfgfx_v0300!CBrushRealizer::CreateResourceRealizer+0x44
0579f8a8 7818efed msvcr80!_handle_exc+0x1d2, calling msvcr80!_set_statfp
0579f8d0 78190ff7 msvcr80!_87except+0xc4, calling msvcr80!_ctrlfp
0579f8e4 5400f7b4 wpfgfx_v0300!TMilRect<float,MilRectF,RectUniqueness::NotNeeded>::Intersect+0x6f, calling wpfgfx_v0300!TMilRect<float,MilRectF,RectUniqueness::NotNeeded>::IsEmpty
0579f8e8 5400e8da wpfgfx_v0300!CMetaIterator::SetupForNextInternalRT+0x1ce, calling wpfgfx_v0300!CDisplaySet::GetDisplaySettings
0579f8fc 54013318 wpfgfx_v0300!CMetaIterator::CMetaIterator+0x47, calling wpfgfx_v0300!TMilRect<float,MilRectF,RectUniqueness::NotNeeded>::IsEmpty
0579f914 540375a4 wpfgfx_v0300!CHwDisplayRenderTarget::DrawGlyphs+0x1c, calling wpfgfx_v0300!CHwSurfaceRenderTarget::DrawGlyphs
0579f928 54030778 wpfgfx_v0300!CMetaRenderTarget::DrawGlyphs+0xb6
0579f958 54012418 wpfgfx_v0300!CDrawingContext::DrawRectangle+0x102, calling wpfgfx_v0300!CCodeTracer::IsTracingEnabled
0579f990 5400d359 wpfgfx_v0300!CBaseMatrix::Transform2DBounds+0x5f, calling wpfgfx_v0300!CBaseMatrix::Transform
0579f9e0 54030683 wpfgfx_v0300!CDrawingContext::DrawGlyphRun+0x1de
0579fa38 540124f0 wpfgfx_v0300!CMilSlaveRenderData::Draw+0x4a4
0579fa80 54012040 wpfgfx_v0300!InflateRectF_InPlace+0xb, calling wpfgfx_v0300!InflateRectF_InPlace
0579fa84 5400f7b4 wpfgfx_v0300!TMilRect<float,MilRectF,RectUniqueness::NotNeeded>::Intersect+0x6f, calling wpfgfx_v0300!TMilRect<float,MilRectF,RectUniqueness::NotNeeded>::IsEmpty
0579fa88 5400f816 wpfgfx_v0300!CDrawingContext::GetClippedWorldSpaceBounds+0x5c, calling wpfgfx_v0300!TMilRect<float,MilRectF,RectUniqueness::NotNeeded>::Intersect
0579faac 54010f74 wpfgfx_v0300!CSnappingFrame::PushFrame+0x89, calling wpfgfx_v0300!CSnappingFrameEmpty::PushFrame
0579fadc 54012562 wpfgfx_v0300!CMilVisual::RenderContent+0x2a, calling wpfgfx_v0300!CMilSlaveRenderData::Draw
0579faf4 5400f950 wpfgfx_v0300!CDrawingContext::PreSubgraph+0x485
0579fb6c 540156f1 wpfgfx_v0300!CMetaRenderTarget::Clear+0x129, calling wpfgfx_v0300!CMetaIterator::~CMetaIterator
0579fbc4 540105da wpfgfx_v0300!CWatermarkStack<CModelWalker::CFrame,64,2,10>::Push+0xdf
0579fbd8 54009f0d wpfgfx_v0300!CPtrArrayBase::operator[]+0x7, calling wpfgfx_v0300!CPtrMultisetBase::GetCount
0579fbdc 5400f6c5 wpfgfx_v0300!CMilVisual::GetChildAt+0x21, calling wpfgfx_v0300!CPtrArrayBase::operator[]
0579fbec 5400f725 wpfgfx_v0300!CGraphWalker::GotoFirstChild+0x61
0579fc0c 5400e646 wpfgfx_v0300!CGraphIterator::Walk+0x32
0579fc34 5400f622 wpfgfx_v0300!CDrawingContext::DrawVisualTree+0x324, calling wpfgfx_v0300!CGraphIterator::Walk
0579fc48 54015b24 wpfgfx_v0300!CPreComputeContext::ConvertInnerToOuterBounds+0xbf, calling wpfgfx_v0300!TMilRect<float,MilRectF,RectUniqueness::NotNeeded>::IsWellOrdered
0579fcd0 54009f0d wpfgfx_v0300!CPtrArrayBase::operator[]+0x7, calling wpfgfx_v0300!CPtrMultisetBase::GetCount
0579fcd4 5400f6c5 wpfgfx_v0300!CMilVisual::GetChildAt+0x21, calling wpfgfx_v0300!CPtrArrayBase::operator[]
0579fcdc 54009f0d wpfgfx_v0300!CPtrArrayBase::operator[]+0x7, calling wpfgfx_v0300!CPtrMultisetBase::GetCount
0579fce0 5400f6c5 wpfgfx_v0300!CMilVisual::GetChildAt+0x21, calling wpfgfx_v0300!CPtrArrayBase::operator[]
0579fcf0 5400f688 wpfgfx_v0300!CGraphWalker::GotoSibling+0x4f
0579fd00 5400eba9 wpfgfx_v0300!CGraphWalker::EndWalk+0x12, calling wpfgfx_v0300!CWatermarkStack<CModelWalker::CFrame,64,2,10>::Optimize
0579fd08 5400ebc1 wpfgfx_v0300!CGraphIterator::Walk+0x110, calling wpfgfx_v0300!CGraphWalker::EndWalk
0579fd30 5400ecb2 wpfgfx_v0300!CPreComputeContext::PreCompute+0xfc, calling wpfgfx_v0300!CWatermarkStack<TMilRect_<float,MilRectF,MilPointAndSizeF,RectUniqueness::NotNeeded>,8,2,8>::Clear
0579fd44 5400ecfa wpfgfx_v0300!CDrawingContext::PreCompute+0x52, calling wpfgfx_v0300!CPreComputeContext::PreCompute
0579fd5c 5400eef8 wpfgfx_v0300!CDirtyRegion2::GetDirtyRegion+0x3b, calling msvcr80!memset
0579fd68 5400ef14 wpfgfx_v0300!CDirtyRegion2::GetDirtyRegion+0x57, calling wpfgfx_v0300!TMilRect<float,MilRectF,RectUniqueness::NotNeeded>::IsEmpty
0579fd80 540302f6 wpfgfx_v0300!CDrawingContext::Render+0x324, calling wpfgfx_v0300!CDrawingContext::DrawVisualTree
0579fda0 54007231 wpfgfx_v0300!CDisplaySet::HasDisplayStateChanged+0x10, calling wpfgfx_v0300!CDisplaySet::IsUpToDate
0579fdfc 5400c019 wpfgfx_v0300!CSlaveHWndRenderTarget::Render+0x209, calling wpfgfx_v0300!CDrawingContext::Render
0579fe54 540076e0 wpfgfx_v0300!FreeBatch+0x14, calling wpfgfx_v0300!COcclusionContext::`scalar deleting destructor'
0579fe60 54007391 wpfgfx_v0300!CComposition::ProcessCommandBatch+0x22d6, calling wpfgfx_v0300!FreeBatch
0579fea8 540073c4 wpfgfx_v0300!CComposition::ProcessPartitionCommand+0x70, calling wpfgfx_v0300!CComposition::ProcessCommandBatch
0579febc 5400be78 wpfgfx_v0300!CRenderTargetManager::Render+0x2e
0579fedc 54007523 wpfgfx_v0300!CComposition::Render+0x21, calling wpfgfx_v0300!CRenderTargetManager::Render
0579fef4 540075d6 wpfgfx_v0300!CComposition::ProcessComposition+0xf3, calling wpfgfx_v0300!CComposition::Render
0579ff20 5400700e wpfgfx_v0300!CPartitionManager::LogEvent+0x26, calling kernel32!InterlockedCompareExchange
0579ff2c 5400700e wpfgfx_v0300!CPartitionManager::LogEvent+0x26, calling kernel32!InterlockedCompareExchange
0579ff34 5400700e wpfgfx_v0300!CPartitionManager::LogEvent+0x26, calling kernel32!InterlockedCompareExchange
0579ff38 5400700e wpfgfx_v0300!CPartitionManager::LogEvent+0x26, calling kernel32!InterlockedCompareExchange
0579ff58 54007667 wpfgfx_v0300!CComposition::Compose+0x3e, calling wpfgfx_v0300!CComposition::ProcessComposition
0579ff6c 540076a2 wpfgfx_v0300!CPartitionThread::RenderPartition+0x1c
0579ff88 5400717b wpfgfx_v0300!CPartitionThread::Run+0x48, calling wpfgfx_v0300!CPartitionThread::RenderPartition
0579ff9c 5400b68e wpfgfx_v0300!CPartitionThread::ThreadMain+0x1e
0579ffa0 79e8209e mscorwks!Module::EnsureActive+0x5f, calling mscorwks!DomainFile::EnsureLoadLevel
0579ffb4 7c80b729 kernel32!BaseThreadStart+0x37
0579ffbc 79e8209e mscorwks!Module::EnsureActive+0x5f, calling mscorwks!DomainFile::EnsureLoadLevel

推荐答案

可能是由于字体缓存数据文件损坏.请尝试以下解决方法.

1.运行services.msc
2.停止Windows Presentation Foundation Font Cache 3.0.0.0服务
3.删除XP中的FontCache3.0.0.0.dat

:Vista中的
%systemdrive%\ Documents and Settings \ LocalService \ Local Settings \ Application Data

:% windir%\ ServiceProfiles \ LocalService \ AppData \ Local

4.重新启动机器
Probably due to font cache data file corruption. Try the below workaround.

1. Run services.msc
2. Stop Windows Presentation Foundation Font Cache 3.0.0.0 service
3. Delete FontCache3.0.0.0.dat

in XP:
%systemdrive%\Documents and Settings\LocalService\Local Settings\Application Data

in Vista: %windir%\ServiceProfiles\LocalService\AppData\Local

4. Restart the machine


这篇关于presentationhost.exe在50%CPU上运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆