c# - .NET 4 中的 "Hello, World!!"生成 3500 个页面错误

标签 c# .net

我正在使用 .NET 4 运行 Windows Vista 和 Visual Studio 2010。 2 GB RAM 和大约 800 MB 可用空间。

我创建了一个 Windows 窗体应用程序,但未向其添加任何代码。只需在 Release模式下编译它,关闭 Visual Studio 并启动应用程序。如果我在任务管理器中查看应用程序生成 3500 个页面错误,因为它只是启动并且什么都不做。

如果我创建一个控制台应用程序并仅添加一个 Console.ReadLine(); 以使其保持打开状态,它会生成 1500 个页面错误。

这是 .NET 的正常行为吗?这些数字对我来说高得离谱。

最佳答案

您必须明白,.NET 应用程序的代码不仅仅是您编写的代码。它必须加载程序集、解析它、编译它、执行它,然后加载各种支持库等(其中一些可能需要类似的解析、编译等),所有这些都会造成页面错误.在宏伟的计划中,3,500 个页面错误并不算多。

例如,我尝试了一些“简单”的控制台应用程序。 More,从控制台运行,生成 750 个页面错误,这是一个非常小的应用程序,它所做的只是从一个输入到另一个输入的回显。它是用 C 语言编写的,这是一种不进行垃圾回收的语言,没有虚拟机,也没有必须附带的大型运行时库(它是静态链接的,因此不依赖于运行时)。

鉴于 .NET 所做的一切,仅使用 1,500 个页面错误执行 ReadLine 的单行控制台应用程序似乎相当不错。

我什至不确定您为什么关心页面错误。也许您来自一个页面错误是一件坏事的平台。在 Windows 中,进程是“页面支持的”,这意味着操作系统内存映射一个可执行文件,然后根据需要加载页面(这包括共享库,以及可执行文件本身、图标、图像,以及各种东西)。当操作系统需要将它们加载到内存中时,这些页面中的每一个都会产生页面错误。这很正常,这就是操作系统的工作方式。

关于c# - .NET 4 中的 "Hello, World!!"生成 3500 个页面错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014892/

相关文章:

c# - 在运行时从 C# 中的 ArrayList 生成自定义对象

c# - 在工作中学习 WPF

c# - 解析程序集,模糊方式

c# - 为给定类型的所有控件设置默认属性

c# - 如何从另一个appDomain调用一个类的方法

.net - margin :0 auto; not working for the whole page

.net - 有没有办法创建 .net 用户控件以便在 delphi 表单上使用它们?

c# - 如何制作具有连续 ID 的线程

c# - SMTP 客户端在本地主机上发送消息失败,在远程主机上成功

c# - 代码在 Release模式和 Debug模式下的行为不同