c# – 我的部分GUI很慢
我的GUI遇到了问题.
我的GUI中有多个部分. 第一个用于图像(从500×500到3000×3000,每秒最多更新4次) 第二个是主菜单 第三个按钮具有关于图像的选项.我没有立刻显示所有这些,我滚动浏览几个菜单,我只渲染那些可见的菜单. (otpions的一个例子是图像的像素大小) 我在一个800x800px大的Viewbox中显示图像.我用Stretch =“{Binding Path = StretchMode}”拉伸盒子里面的图像 我得到的图像是某种流.我每秒都会得到多张图像. 现在,当我显示图像时,第一个GUI部分工作正常(无论图像大小如何),但其他部分有时会有一个沉重的framedrop.我举几个例子: 例1: 图像大500×500像素.我可以在没有framedrop的情况下工作,整个gui更新正确. 例2: 图像大小为1500×1500像素.我可以在没有Framedrop的情况下工作,整个gui更新正确. 例3: 图像大小为2500×2500像素.图像更新速度很快,但GUI的其余部分的帧速率从60 fps到fps,有时甚至达到1 fps. 我对这个问题的看法是: >硬件已达到极限.但是Visual Studio的Taskmanager和CPU / RAM分析表明它是好的. 我希望你能给我一些想法,为什么GUI有这种行为. 我没有使用VM. 解决方法
编辑:道歉,堆栈没有我的分数高到足以评论,所以评论 – 这里的内容相反.
编辑1:进程资源管理器(来自Sysinternals)应该被用作一个低悬的水果,看看什么(如果有的话)视频资源有高消费.进程资源管理器中有一个选项卡/区域用于查看图形资源.在进程资源管理器中,您可以执行“选择列”并添加GPU资源以便于查看.尝试是一个很好的角度. 我想冒昧地猜测我们正在处理一个问题 带有DPC数据的ETW跟踪可能会有所帮助.此外,您没有提到您是否在VM中,VM会使任务管理器反映CPU上的资源消耗不准确. 如何收集此类跟踪的示例如下:https://blogs.technet.microsoft.com/jeff_stokes/2012/09/18/how-to-collect-a-trace-for-audio-or-video-problems-in-windows-7/ 无论如何,我怀疑你正在研究内核驱动程序或IPC / DPC问题,而不仅仅是原始CPU消耗.我认为需要提供更多数据. (硬件规格,使用的操作系统,VM /不). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |