【问题标题】:How do I improve performance of winforms application in Mono?如何提高 Mono 中 winforms 应用程序的性能?
【发布时间】:2010-10-11 11:57:26
【问题描述】:

我有一个在 C# 中使用 windows 窗体的远程处理应用程序(2 人魔术聚会游戏),但我看到非常糟糕 单声道性能。我能想到的可能会影响性能的一件事是我有按钮背景和表单背景(.png)的自定义图像。此外,我大量使用卡片图像(.jpg)。最后,我非常严格地坚持使用 .NET 2.0。

我可以寻找什么来提高单声道的 Windows 窗体性能?如果这是不可能的,是否有一个快速的 gtk# 转换器或工具可以帮助转换?

【问题讨论】:

    标签: c# winforms performance mono gtk#


    【解决方案1】:

    您是否尝试过profile your code。也许这会告诉你瓶颈在哪里......

    我认为一个大问题是

    而 .Net 实现是一个 绑定到 Win32 工具包 Mono 实现是用 C# 编写的 允许它在多个平台上工作

    如提到的here

    Mono 中的 System.Windows.Forms 是 使用 System.Drawing 实现。全部 控件是通过原生绘制的 系统.绘图。 System.Windows.Forms 实现自己的驱动程序接口 与主机操作系统窗口通信 系统。

    here所述。

    我不知道从 winforms 到 gtk# 的转换器...,但如果您真的想费心将您的游戏转换为 gtk#,this 可能是一个很好的起点。

    【讨论】:

      【解决方案2】:

      如果您能详细说明您正在观察到的性能问题是什么,这将非常有用。

      由于试图支持正确嵌入其中的 WndProc 模型所带来的一些要求,如今 Mono 的 Windows.Forms 实现有点慢。

      这是一个可以改进的领域,很可能 Wine 的许多经验教训都可以应用于 Mono 的 Winforms 实现。

      【讨论】:

      • 嗨 Miguel 甚至我都不知道确切的问题......它真的很慢。我什至自己编译了单声道。如果您想运行它并查看,我可以将我的程序发送给您。
      【解决方案3】:

      您是否尝试过对其进行剖析? Mono 有一个内置的分析器。 There's a page on the mono website 关于单声道分析器和其他性能提示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多