Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 内存利用率:WPF与Windows窗体_.net_Wpf_.net 4.0 - Fatal编程技术网

.net 内存利用率:WPF与Windows窗体

.net 内存利用率:WPF与Windows窗体,.net,wpf,.net-4.0,.net,Wpf,.net 4.0,一个功能为零的简单示例应用程序显示了内存利用率的惊人差异 数字以专用字节表示,并使用.NET 4.0 WPF-56MB Windows窗体-13MB 众所周知,框架不擅长什么都不做,但我仍然对这种差异感到惊讶。作为使用WPF的成本,我能期望使用WPF构建的应用程序在专用字节中会多消耗30-40MB吗?从这些数据中可以推断,不会。您可以推断,完全不做任何事情的应用程序在WPF中会多消耗43MB 我的观点是,随着应用程序使用更多的功能,差异可能会增加、减少或保持不变。没有办法知道。根据这些数据,

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

数字以专用字节表示,并使用.NET 4.0

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

众所周知,框架不擅长什么都不做,但我仍然对这种差异感到惊讶。作为使用WPF的成本,我能期望使用WPF构建的应用程序在专用字节中会多消耗30-40MB吗?

从这些数据中可以推断,不会。您可以推断,完全不做任何事情的应用程序在WPF中会多消耗43MB


我的观点是,随着应用程序使用更多的功能,差异可能会增加、减少或保持不变。没有办法知道。

根据这些数据,没有。您可以推断,完全不做任何事情的应用程序将在WPF中多消耗43MB

我的观点是,随着应用程序使用更多的功能,差异可能会增加、减少或保持不变。没有办法知道。

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

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

虽然WPF是完全GPU加速的,但在某些情况下,性能提升是可以预期的。但这些并不是您在task manager中看到的性能提升,它们以提高动画平滑度和用户响应能力的形式变得明显。

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

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


虽然WPF是完全GPU加速的,但在某些情况下,性能提升是可以预期的。但这些并不是您在task manager中看到的性能提升,它们以提高动画平滑度和用户响应能力的形式变得明显。

我建议您尝试在WPF中创建一个包含10000个控件的UI,在WinForms中创建一个类似的UI,然后检查内存使用情况。通过编程实现这一点相当简单——例如,只需创建一个表单并将10000个
TextBox
对象添加到它的
控件
集合中。(剧透警报:WinForms需要使用小于10000的数字。)这也不会给你一个特别准确的比较点,但它比一个什么都不做的应用更准确,这将给您上一堂关于无窗口控件的宝贵课。

我建议您尝试在WPF中创建一个包含10000个控件的UI,在WinForms中创建一个类似的UI,然后检查内存使用情况。通过编程实现这一点相当简单——例如,只需创建一个表单并将10000个
TextBox
对象添加到它的
控件
集合中。(剧透警报:WinForms需要使用小于10000的数字。)这也不会给你一个特别准确的比较点,但它比一个什么都不做的应用程序更准确,它会给你上一堂关于无窗口控件的宝贵一课。

从经验上讲,是的,这是真的。这个实验只证明了WPF作为一个框架不太擅长于做Windows窗体之类的事情。我真的不在乎WPF做得有多好。似乎使用WPF在内存方面比Windows窗体有更高的基线成本。从经验上看,是的,这是事实。这个实验只证明了WPF作为一个框架不太擅长于做Windows窗体之类的事情。我真的不在乎WPF做得有多好。似乎使用WPF在内存方面比Windows窗体有更高的基线成本。