Подтвердить что ты не робот

Производительность Python и Java (скорость выполнения)

Возможный дубликат:
является python медленнее, чем java/С#?

Игнорирование всех характеристик каждого языка и фокусировка SOLELY на скорости, какой язык лучше по производительности?

Вы подумали бы, что это будет довольно простой вопрос, но я не нашел достойного.

Я знаю, что некоторые типы операций могут быть быстрее с python и наоборот, но я не могу найти никакой подробной информации об этом. Может ли кто-нибудь пролить свет на различия в производительности?

4b9b3361

Ответ 1

Java быстрее, чем Python. Легко.

Python благоприятен для многих вещей; скорость не обязательно является одной из них.

Ссылки

Ответ 2

Если вы игнорируете характеристики обоих языков, как вы определяете "СКОРОСТЬ"? Какие функции должны быть в вашем тесте и которые вы хотите пропустить?

Например:

  • Учитывается ли это, когда Java выполняет пустой цикл быстрее, чем Python?
  • Или это Python быстрее, когда он замечает, что тело цикла пуст, заголовок цикла не имеет побочных эффектов и оптимизирует весь цикл?
  • Или это "языковая характеристика"?
  • Вы хотите узнать, сколько байткодов каждый язык может выполнять в секунду?
  • Какие? Только быстрые или все из них?
  • Как вы рассчитываете компилятор Java VM JIT, который превращает байт-код в код ассемблера, специфичный для процессора, во время выполнения?
  • Включите ли вы время компиляции кода (которые добавлены в Java, но всегда включены в Python)?

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

Ответ 3

Нет никакого хорошего ответа, поскольку Python и Java являются спецификациями, для которых существует множество различных реализаций. Например, CPython, IronPython, Jython и PyPy - всего лишь несколько вариантов реализации Python. Для Java есть виртуальная машина HotSpot, виртуальная машина Mac OS X Java, OpenJRE и т.д. Jython генерирует байт-код Java, поэтому он будет использовать более или менее одну и ту же базовую Java. CPython реализует довольно много вещей непосредственно на C, поэтому он очень быстрый, но опять же виртуальные машины Java также реализуют множество функций на C. Вам, вероятно, придется измерять по принципу "по функциям" и через различные интерпретаторы и VM, чтобы сделать любое разумное утверждение.

Ответ 4

Разные языки делают разные вещи с разным уровнем эффективности.

В игре Benchmarks Game есть множество различных проблем программирования, реализованных на разных языках.