内存利用率:WPF与Windows窗体

时间:2010-12-02 14:52:25

标签: .net wpf .net-4.0

一个功能为零的简单示例应用程序显示内存利用率的惊人差异。

数字是私有字节并使用.NET 4.0。

  • WPF - 56MB
  • Windows窗体 - 13MB

框架因无所事事而臭名昭着,但我仍然对这种差异感到惊讶。作为使用WPF的成本,我可以期望使用WPF构建的应用程序在私有字节中消耗30-40MB的空间吗?

3 个答案:

答案 0 :(得分:6)

根据这些数据,没有。您可以推断出一个完全不执行任何操作的应用程序将在WPF中消耗43MB以上。

我的观点是,随着应用程序使用更多功能,差异可能会增加,减少或保持不变。无从知晓。

答案 1 :(得分:4)

我建议您尝试在WPF中创建一个包含10,000个控件的UI,在WinForms中创建一个类似的UI,然后检查内存使用情况。以编程方式执行此操作非常简单 - 例如,只需创建一个表单并将10,000 TextBox个对象添加到其Controls集合中。 (剧透警告:你需要使用一个小于10,000的数字与WinForms。)这不会给你一个特别准确的比较点,但它比一个什么都不做的应用程序更准确,它会教你一个关于无窗控制的宝贵教训。

答案 2 :(得分:0)

WPF(及其基本控件)提供了更多功能,因此预计会增加开销。

WPF的优势在于它比WinForms更具“开发人员时间效率”(创建丰富的UI),而不是“内存效率”或“CPU效率”。

虽然由于WPF完全是GPU加速的,但在某些情况下可以预期性能提升。但这些并不是您在任务管理器中可以看到的性能提升,这些在动画平滑度和用户响应能力方面都变得明显。