这里有几次关于解释语言或R的问题,但我没有找到任何关于编译语言的信息,特别是C#。
根据我所读到的内容似乎可以忽略不计,但它仍然会导致解释语言的速度减慢: Do comments slow down an interpreted language?
编译语言怎么样?!他们只减慢编译过程但不执行?
答案 0 :(得分:11)
编译程序时,编译器实际执行:
对于评论,他们应该在词法分析阶段提取作为标记,并在语法分析(解析)阶段退出。因此,您可以放慢编译器的速度,但不能减慢生成的代码。
许多解释语言通常会先执行两到三个阶段,然后再执行,因此评论不一定会减慢甚至解释语言
答案 1 :(得分:4)
编译器有以下几个阶段:
在词法分析中,会跳过评论,这基本上就像你没有写任何内容。
所以不,它们不会以任何方式影响性能。
答案 2 :(得分:2)
评论将从词汇分析阶段
中排除但如果在词汇分析阶段解析带注释的代码,则可能需要花费更多时间作为没有注释的代码进行比较,但 注释不会影响执行时间 < /强>
为什么不亲自尝试,请查看以下示例并运行它。
class Program
{
static void Main(string[] args)
{
DateTime StartTime;
DateTime EndTime;
TimeSpan ExecutionTime;
StartTime = DateTime.Now;
for (int i = 0; i < 10000;)
{
i++;
for (int j = 0; j < 100000;)
{
j++;
}
}
EndTime = DateTime.Now;
ExecutionTime = (EndTime - StartTime);
Console.WriteLine("Phase 1 without comment done.");
Console.WriteLine("Phase 1 start time : " + StartTime.ToString());
Console.WriteLine("Phase 1 end time : " + EndTime.ToString());
Console.WriteLine("Phase 1 Execution Seconds : " + ExecutionTime.TotalSeconds);
Console.WriteLine("\r\n---------------------------------------------\r\n");
StartTime = DateTime.Now;
for (int i = 0; i < 10000;)
{
i++;
for (int j = 0; j < 100000;)
{
j++;
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
// SOME COMMENT.
}
}
EndTime = DateTime.Now;
ExecutionTime = (EndTime - StartTime);
Console.WriteLine("Phase 2 with comment done.");
Console.WriteLine("Phase 2 start time : " + StartTime.ToString());
Console.WriteLine("Phase 2 end time : " + EndTime.ToString());
Console.WriteLine("Phase 2 Execution Seconds : " + ExecutionTime.TotalSeconds);
Console.ReadKey();
}
}
答案 3 :(得分:0)
编译器不会减慢程序速度,它会忽略所有注释并获取原始代码。