Меня как-то не устроило то, как вы оценили производительность Python, поэтому я взялся чуть подправить ваш пример для демонстрации совершенно других результатов. Запуск моего примера кроме установки numpy (
pip install numpy
), потребует установку еще одной интересной библиотеки (
pip install numba
) с ее установкой могут быть связанны некоторые трудности на различных ОС (она зависит еще и от llvm), но, поверьте, оно того стоит, полученные цифры производительности должны вам понравиться.
Для демонстрации реальной скорости вычислений в моем примере миллион итераций это довольно мало, камень не успевает хорошо прогреться. Обратите внимание,
я заменил миллион итераций на 100 миллионов, поэтому полученный результат надо разделить на 100 для сравнения с другими языками. Вот, собственно, сам код:
from numba import jit
import numpy
@jit
def inner_func(a_list, b_list):
sum = 0
j = 0
for y in range(0, 16):
for x in range(0, 16):
p = a_list[j] - b_list[j]
sum += p * p
j += 1
return sum
@jit
def outer_func(a_list, b_list):
sum = 0
for g in range(0, 100000000): # 100 000 000 == 10^8 !!!
sum += inner_func(a_list, b_list)
return sum
def main():
maxint = numpy.iinfo(numpy.intc).max
a_list = numpy.random.randint(maxint, size=256)
b_list = numpy.random.randint(maxint, size=256)
sum = outer_func(a_list, b_list)
print(sum)
if __name__ == '__main__':
main()
Если вам удалось это запустить и полученные цифры вас впечатлили, то я бы попросил подправить в вашем вопросе ту часть, которая касается Python, для восстановления справедливости в отношении этого великолепного языка.