通常,使用 IDE 编译的程序的文件大小是否比使用普通文本编辑器保存的文件大?
Does a program, in general, have a larger file size when compiled with an IDE than saved by a normal text editor?
在 Joyce Farrell 的编程逻辑与设计,第 8 版中,她指出
When you use the IDE to create and save a program, you occupy much more disk space than when using a plain text editor.
她使用了一个用 C# 编写的倍数程序示例。当使用简单的文本编辑器(具体是记事本)保存时,该程序(据说)仅占用 314 字节的存储空间,而使用 Microsoft Visual Studio IDE 编译时占用超过 49,000 字节.
这两个程序的唯一区别是 Visual Studio 中编译的程序显示导入了三个额外的东西:
using System.Collections.Generic;
using System.Text;
using System.Linq;
记事本版剩余程序:
using System;
public class NumberDoublingProgram
{
public static void Main()
{
int myNumber;
int myAnswer;
Console.write("Please enter a number >> ");
myNumber = Convert.ToInt32(Console.ReadLine());
myAnswer = myNumber * 2;
Console.WriteLine(myAnswer);
}
}
我的最后一个问题是,她关于编译程序占用更多 space 的说法是否正确 对于每个 language/compiler 作为一揽子陈述 ?将其用作对所有编程语言的概括是否可以接受,或者这是错误的 information/debunkable?
感谢您的宝贵时间。
用 IDE 编写的代码将编译与用记事本编写的代码相同。不同之处在于 IDE 添加的文件可以让您更好地组织项目,并且可能包括其他占用更多磁盘空间的功能 space。
选择最适合您的项目需求的开发环境。 IDE 对于大型项目非常有用。记事本是为小程序编写代码的好方法。
生成的程序的大小取决于编译器(及其配置 - 例如发布模式与调试模式),而不是您是否在 IDE 或记事本。
要回答问题的第二部分,在 C#、Java 或 C 中需要一行代码的东西在生成的可执行文件中可能需要几行代码(因为 higher-level 语言抽象出一些实现细节;例如,有相当多的汇编语言继续进入和退出一个方法,但是当你使用 C 时,它对你是隐藏的,以至于很多人甚至没有意识到执行方法调用的任何开销)。这就是源代码文件通常小于生成的可执行文件的原因。
为了说明这一点,您可以查看一些很好的 C# 示例和生成的 CIL 代码 here。
描述可执行文件中内容的更多答案:
- what's in a .exe file?
- What does executable file actually contain?
在 Joyce Farrell 的编程逻辑与设计,第 8 版中,她指出
When you use the IDE to create and save a program, you occupy much more disk space than when using a plain text editor.
她使用了一个用 C# 编写的倍数程序示例。当使用简单的文本编辑器(具体是记事本)保存时,该程序(据说)仅占用 314 字节的存储空间,而使用 Microsoft Visual Studio IDE 编译时占用超过 49,000 字节.
这两个程序的唯一区别是 Visual Studio 中编译的程序显示导入了三个额外的东西:
using System.Collections.Generic;
using System.Text;
using System.Linq;
记事本版剩余程序:
using System;
public class NumberDoublingProgram
{
public static void Main()
{
int myNumber;
int myAnswer;
Console.write("Please enter a number >> ");
myNumber = Convert.ToInt32(Console.ReadLine());
myAnswer = myNumber * 2;
Console.WriteLine(myAnswer);
}
}
我的最后一个问题是,她关于编译程序占用更多 space 的说法是否正确 对于每个 language/compiler 作为一揽子陈述 ?将其用作对所有编程语言的概括是否可以接受,或者这是错误的 information/debunkable?
感谢您的宝贵时间。
用 IDE 编写的代码将编译与用记事本编写的代码相同。不同之处在于 IDE 添加的文件可以让您更好地组织项目,并且可能包括其他占用更多磁盘空间的功能 space。
选择最适合您的项目需求的开发环境。 IDE 对于大型项目非常有用。记事本是为小程序编写代码的好方法。
生成的程序的大小取决于编译器(及其配置 - 例如发布模式与调试模式),而不是您是否在 IDE 或记事本。
要回答问题的第二部分,在 C#、Java 或 C 中需要一行代码的东西在生成的可执行文件中可能需要几行代码(因为 higher-level 语言抽象出一些实现细节;例如,有相当多的汇编语言继续进入和退出一个方法,但是当你使用 C 时,它对你是隐藏的,以至于很多人甚至没有意识到执行方法调用的任何开销)。这就是源代码文件通常小于生成的可执行文件的原因。
为了说明这一点,您可以查看一些很好的 C# 示例和生成的 CIL 代码 here。
描述可执行文件中内容的更多答案:
- what's in a .exe file?
- What does executable file actually contain?