Size: a a a

Язык программирования Julia / Julia programming language

2017 July 21

AB

Alex Bekhtin in Язык программирования Julia / Julia programming language
Видимо для не-функций не работает JIT так как надо. Завернули в фунцию и пошло как надо.
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
[a.konovalov@msk1-zbxsrv01 JuliaCrystalPerl]$ julia 1e6.jl
 0.211559 seconds (44.78 k allocations: 2.802 MiB)
Быстрее... Такое впечатление, что в случае @time begin время затрачено.. на компиляцию кода. Как такое может быть вообще?
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Ну т.е. что-то типа eval
источник

AB

Alex Bekhtin in Язык программирования Julia / Julia programming language
Судя по всему не на компиляцию
источник

I

I in Язык программирования Julia / Julia programming language
ща. пояшню
источник

A

Andrey in Язык программирования Julia / Julia programming language
Для честных тестов нужно сначала один раз запустить функцию, чтобы она прошла компиляцию с нужными типами данных
источник

AB

Alex Bekhtin in Язык программирования Julia / Julia programming language
Если сравнивать на бОльших значениях это видно.
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Но обычный BASIC уделал Julia вчистую:

[a.konovalov@msk1-zbxsrv01 JuliaCrystalPerl]$ julia 1e6.jl
 0.211559 seconds (44.78 k allocations: 2.802 MiB)
[a.konovalov@msk1-zbxsrv01 JuliaCrystalPerl]$ time ./1e6

real    0m0.091s
user    0m0.090s
sys     0m0.002s
источник

A

Andrey in Язык программирования Julia / Julia programming language
А потом еще пару сотен раз, и взять среднее/минимальное/максимальное время одного прогона
источник

A

Andrey in Язык программирования Julia / Julia programming language
Или даже медиану
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Кстати, тест на BASIC:
dim x(68) as double 
dim y(68) as double
dim z(68) as double
dim r as long
dim j as integer, i as long

randomize timer

for j=0 to 67
       x(j)=rnd*67+1
       y(j)=rnd*67+1
next

for i=1 to 1e+6
       r=i mod 68
       z(r)=x(r)^y(r)
next
источник

AB

Alex Bekhtin in Язык программирования Julia / Julia programming language
Ну тогда до кучи:
источник

AB

Alex Bekhtin in Язык программирования Julia / Julia programming language
Python
import time
from random import random

def timeit(method):

   def timed(*args, **kw):
       ts = time.time()
       result = method(*args, **kw)
       te = time.time()

       print('%r (%r, %r) %2.2f sec' % (method.__name__, args, kw, te-ts))
       return result

   return timed

@timeit
def test_function():
 XX = [random()*67+1 for i in range(68)]
 YY = [random()*67+1 for i in range(68)]
 ZZ = [0 for i in range(68)]
 for i in range(1000000):
   r = i % 68;
   ZZ[r] = XX[r] ** YY[r]

test_function()
источник

I

I in Язык программирования Julia / Julia programming language
в питоне наверное совсем мрак. это же списки
источник

I

I in Язык программирования Julia / Julia programming language
стоило бы врубить нампи
источник

I

I in Язык программирования Julia / Julia programming language
и подрубить массивы
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
def timed(*args, **kw)
Мама.....
источник

AB

Alex Bekhtin in Язык программирования Julia / Julia programming language
Andrey Konovalov
def timed(*args, **kw)
Мама.....
Ну мне иногда так нравится замеры делать.
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Эмм... А это что? Указатели??
источник

I

I in Язык программирования Julia / Julia programming language
у меня тоже такая мерялка в питоне
источник