Linux 和 Windows 内核

9 kernel

我在 Linux 上工作,一个朋友在 Windows 7 上工作。

我对 NetBeans、Eclipse、pgAdmin 和其他程序在 Linux 上打开的速度感到惊讶,真的,比在 Windows 上快很多。

导致该时间负载差异的 Linux 和 Windows 内核之间的主要区别是什么?

两台机器的硬件配置完全相同。

Rob*_*inJ 7

这只是我的猜测,但我认为当你在一家公司工作时,一旦所有东西都被编译(转换为二进制数据,计算机可以执行),没有人可以再看到源代码,你往往会更懒惰,因为只要它有效就无所谓。
Linux 是开源的,所以如果他们愿意,每个人都可以查看源代码。如果你很懒惰,并且编写了一段非常糟糕的代码,这会真正减慢系统速度或其他类似的东西,那么你的名声就会消失,正如大家刚刚看到的那样。开发人员和用户都一样。我认为这就是开源开发人员往往不那么懒惰的原因之一。

还有一个事实是,Windows 内核的核心从来没有打算成为今天的样子(Linux 也没有,但他们努力优化旧的位),开发人员只是一直在添加和添加最重要的是,直到代码变得如此神秘,以至于没有人能再用它来做任何事情。凌乱代码的两个特性是经常有很多冗余,而且你不再那么容易看到两段代码之间的联系,这使得你甚至无法尝试开始优化它。只是一个例子(不是一个神秘的例子);

for (int i = 0; i < 20; i++)
{
    if (x == y)
    {
        if (z <= u)
        {
            goto banana;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的例子可以更有效地完成;

for (int i = 0; (i < 20) && (x == y) && (z <= u); i++)
{
    banana ();
}
Run Code Online (Sandbox Code Playgroud)

  • 这两个代码示例几乎肯定会编译为相同的内容(减去函数调用与 goto)... (4认同)