Тесты Django работают медленнее на Mac по сравнению с Linux? - PullRequest
2 голосов
/ 10 марта 2010

Я в настоящее время разрабатываю свои проекты Django для обоих:

  1. Mac OS X 10.5, 32 бита
  2. Ubuntu Server 9.10 64 бит (1 ЦП, 512 МБ ОЗУ)

Обе вышеперечисленные ОС используют:

  1. Python 2.6.4
  2. Джанго 1.1.1
  3. MySQL 5.1

Выполнение 12 тестов для одного из моих приложений занимает:

  1. Mac: 57,513 с
  2. Linux: 30,935 с

EDIT:

Спецификация оборудования Mac:

  • MacBook Pro
  • 2,2 ГГц Intel Core 2 Duo
  • 3 ГБ ОЗУ

Я использую Ubuntu OS на том же Mac, что и выше, через VMware Fusion 2.0.6.

Вы можете утверждать, что 64-битная версия Ubuntu Server быстрее, но я наблюдал аналогичную разницу в скорости в 32-битной версии Ubuntu 8.10 для настольных компьютеров. Даже если я выключу виртуальную машину Linux и другие приложения Mac, я все еще испытываю медлительность. Кто-нибудь еще испытывал разницу в скорости теста Django на этих двух ОС?

Нашел ответ:

Благодаря комментарию от istruble и ответу от DZPM (у меня +1 к вам, так как я не могу принять ответ на вопрос с истекшим сроком выплаты за вознаграждение). Похоже, что база данных MySQL, поскольку тестовая база данных на Mac вызывает проблемы с производительностью. Использование sqlite3 для тестов делает время выполнения теста сопоставимым на обеих платформах.

Ответы [ 3 ]

2 голосов
/ 15 марта 2010

Это зависит от ваших тестов, но узкое место должно быть в базе данных. Не могли бы вы протестировать MySQL 5.1 на обеих платформах?

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

0 голосов
/ 21 марта 2010

Некоторые строковые операции в Python выглядят значительно медленнее в OS X, чем в Ubunutu, работающем на виртуальной машине на той же машине. Попробуйте это в своей оболочке и посмотрите, какие результаты вы получите:

from timeit import Timer
def sx():
    for i in range(10000):
        s = "%d" % i

min(Timer(stmt=sx).repeat(number=100, repeat=10))

При использовании Python 2.6.4 под OS X 10.6.2 и 64-разрядной Ubuntu (неизвестная версия) с версией ядра 2.6.31 на виртуальной машине VMware Fusion 2.0.6 тест OS X занимает 1.4x, пока Тест Ubuntu. OS X лучше работает под Python 3.1, где он занимает чуть меньше, чем 1.1x.

Это не объясняет вашу ~ 2-кратную разницу в скорости, но показывает, что Python может работать медленнее под OS X.

0 голосов
/ 10 марта 2010

Так что же еще работает, когда у вас работает OSX? У вас есть Ubuntu Server, который обычно разбирается только до самого необходимого и работает на настольной ОС, в которой есть все виды дерьма для «пользовательского опыта». Я удивлен, что это так же хорошо, как показывают твои цифры.

Единственный способ по-настоящему сравнить одно и то же приложение под двумя ОС - это убедиться, что обе ОС настроены по существу одинаково для того, что вы измеряете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...