gpt4 book ai didi

c# - 我的部分 GUI 速度很慢

转载 作者:行者123 更新时间:2023-11-30 12:56:23 25 4
gpt4 key购买 nike

我的 GUI 遇到了问题。我的 GUI 中有多个部分。第一个用于图像(从 500x500 到 3000x3000,每秒最多更新 4 次)第二个是主菜单第三个按钮带有关于图像的选项。我不会一次显示所有这些,我滚动浏览几个菜单,我只渲染可见的菜单。 (选项的一个例子是图像的像素大小)我在 800x800px 大的 Viewbox 中显示图像。我使用 Stretch="{Binding Path=StretchMode}" 拉伸(stretch)框内的图像我得到的图像是某种流。我每秒获得多张图片。

现在,当我显示图像时,第一个 GUI 部分工作正常(无论图像大小如何),但其他部分有时会出现严重的帧丢失。我将举一些例子:

示例 1:

图片大小为 500x500 像素。我可以在没有 framedrop 的情况下工作,并且整个 gui 都能正确更新。

示例 2:

图片大小为 1500x1500 像素。我可以在没有 Framedrop 的情况下工作,并且整个图形用户界面都会正确更新。

示例 3:

图片大小为 2500x2500 像素。图像更新很快,但 GUI 的其余部分的帧率从 60 fps 到 fps,有时甚至到 1 fps。

我对这个问题的看法是:

  1. 硬件已达到极限。但是用 Visual Studios 查看 Taskmanager 和 CPU/RAM 分析表明一切正常。
  2. 为 GUI 渲染太多了,因为 3000x3000 很大,而且每秒 4 次也不慢。经过加载(我从硬盘驱动器加载)3000x3000 图像(相同数据类型)的测试后,它运行速度很快且没有问题。
  3. 一次对 GUI 的更改太多。我只试用了 5 次更新的软件。还是一样的问题。
  4. Microsoft Prism 事件未发生。这也不是因为它位于 Controller 内部,并且在发生变化时正在 Raising the changes。 (我有一个写入日志文件的记录器,它引发的 Change 事件比 GUI 真正发生的变化还要多)
  5. 使用不同的数据类型。可能,但我尝试了几个。 (位图源、位图图像和可写位图)
  6. 在另一个线程中外包一些渲染选项。仍然没有变化。

我希望你能给我一些想法,为什么 GUI 会出现这种行为。如果您需要代码,请告诉我。

我没有使用虚拟机。问题出现在 Windows 7 64 位和 Windows 8.1 64 位上(不是 testet on Windows 10)我的硬件不同。问题出现在我的笔记本电脑(Intel i7-4702MQ @2.2 Ghz、8 gb ddr ram、intel board graphics)和不同规范的 workpc 上(最高规范是:Intel Xeon with 3.5 Ghz、128 GB DDR4 Ram 和 Titan X 和4k 显示器)

最佳答案

编辑:抱歉,堆栈没有足够高的分数来发表评论,所以在这里发表评论内容。

EDIT1:Process explorer(来自 Sysinternals)应该用作一个容易获得的成果,以查看哪些(如果有)视频资源消耗量大。进程资源管理器中有一个选项卡/区域用于查看图形资源。在进程资源管理器中,您可以执行“选择列”并添加 GPU 资源以便于查看。可能是一个很好的尝试角度。

此时我敢猜测我们正在处理一个

带有 DPC 数据的 ETW 跟踪可能会有所帮助。此外,您没有提及您是否在虚拟机中,虚拟机会使任务管理器反射(reflect)不准确的 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 消耗。我认为需要提供更多数据。 (硬件规范、使用的操作系统、虚拟机/非虚拟机)。

关于c# - 我的部分 GUI 速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41446438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com