Linux и ядро windows [закрыто]

Я работаю на Linux, а друг на Windows 7.

Я был поражен скоростью, с которой NetBeans, Eclipse, pgAdmin и другие программы открываются намного, действительно, намного быстрее на Linux, чем на windows.

Каково основное различие между ядром Linux и windows, которое вызывает такую разницу во времени загрузки?

Обе машины имеют совершенно одинаковую аппаратную конфигурацию.

9
задан 14 June 2012 в 22:55

4 ответа

Еще одна важная проблема, о которой еще не говорилось, заключается в том, что Linux имеет лучшие файловые системы. Производительность NTFS с небольшими файлами не так уж велика - ext3 лучше, а ext4 намного, намного лучше. Есть некоторые интересные предположения о том, почему в другом вопросе .

Когда вы открываете программу, значительная часть времени запуска загружает кучу крошечных файлов с диска, поэтому очень важно иметь файловую систему, которая делает это быстро.

0
ответ дан 14 June 2012 в 22:55

Я верю, что само ядро ​​не ответ. Windows 7 - первый раз, когда Windows была настолько отзывчива, что я считаю ее приемлемой.

Я считаю, что большая часть разницы в скорости связана с мыслями @ RobinJ о разработке программного обеспечения. Все * в Windows построено на MSDN через какую-то платформу Microsoft или другую. Это на самом деле связано с тем, как Big Business любит Microsoft; Microsoft все о помощи различным программам / пакетам / технологиям общаться друг с другом.

Далее ... для того, чтобы разработчикам было проще охватить основы (а не заново изобретать колесо), Microsoft позволяет производителям связывать и / или требовать предварительно скомпилированные библиотеки, такие как Microsoft Visual C ++ 2008 Redistributable. Или .Net4.0, MSSQL 2005, до тошноты. Разработчики могут использовать пакеты, рассчитанные на десять лет, и требовать от конечных пользователей установки на свои компьютеры Windows для использования нового программного обеспечения.

Таким образом, чтобы программа Zyzzyx могла загружаться и запускаться, должна присутствовать и работать одна или несколько распространяемых библиотек MSDN. Эти библиотеки определяют, как программы взаимодействуют с ОС.

Чтобы свести это к минимуму, я бы сказал, что преднамеренная совместимость Window с десятилетиями программного обеспечения делает его раздутым и иногда более медленным, чем сопоставимая система linux. Также обратите внимание, что я разработал визуальное программное обеспечение для windows, но не для linux ... не GTK, Qt, Py, что угодно, поэтому мои предположения о том, что linux менее раздут, являются именно этим.

отредактировано, чтобы добавить: далее, в программном обеспечении FOSS есть люди, постоянно совершенствующие его, поэтому GTK будет улучшаться с течением времени, а не GTK-2005 и GTK-2008 на одном компьютере, в то время как Microsoft что все время.

* - хорошо, есть исключения, я уверен.

0
ответ дан 14 June 2012 в 22:55

Это только мое предположение, но я думаю, что когда вы работаете в компании, где, когда все скомпилировано (преобразовано в двоичные данные, которые могут выполнять компьютеры), никто больше не увидит исходный код, вы склонны быть намного ленивее, так как это не имеет значения , пока работает .
Linux является открытым исходным кодом, поэтому каждый может увидеть исходный код, если захочет. Если вы ленивы и пишете действительно дурацкий кусок кода, который действительно замедляет работу системы или что-то в этом роде, ваша репутация, как все только что видели, ухудшается. Как разработчики, так и пользователи. Я думаю, что это одна из причин, почему разработчики открытых соусов склонны быть менее ленивыми.

Это также факт, что ядро ​​ядра Windows никогда не было написано с намерением стать тем, чем оно является сегодня (ни один не был Linux ', но они приложили усилия для оптимизации старых битов), и разработчики просто всегда были добавление и добавление к нему до тех пор, пока код не станет настолько загадочным, что никто больше не сможет что-то из него сделать. Два свойства грязного кода заключаются в том, что часто существует большая избыточность, и что вы больше не видите связей между двумя частями кода так легко, что делает невозможным даже начинать его оптимизацию. Просто пример (не загадочный);

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

Приведенный выше пример можно сделать гораздо эффективнее;

for (int i = 0; (i < 20) && (x == y) && (z <= u); i++)
{
    banana ();
}
0
ответ дан 14 June 2012 в 22:55

Это только мое мнение, но я думаю, что существуют разные причины, по которым системы GNU / Linux работают быстрее, чем Windows, и не все они связаны с ядром:

  • Очевидно, есть причина, объясняемая RobinJ, Совершенно очевидно, что если программное обеспечение с открытым исходным кодом, код, как правило, написан более эффективно
  • Linux использует очень оптимизированные компоненты, например, он использует очень оптимизированный планировщик, который имеет тенденцию максимизировать загрузку ЦП.
  • Linux-системы меньше страдают от фрагментации памяти
  • Linux-системы лучше используют основную память и обычно стремятся к массовому использованию кеша, вместо этого Windows-системы стремятся к массовому использованию виртуальной памяти
  • Linux Ядро постоянно обновляется, и ненужные части обычно удаляются, хотя Линус Торвальдс сказал, что ядро ​​Linux становится «огромным и раздутым», в отличие от обновлений ядра NT, как правило, построенных поверх существующих.
0
ответ дан 14 June 2012 в 22:55

Другие вопросы по тегам:

Похожие вопросы: