A
Как не странно, это примерно так и есть - Джулия позволяет хорошо дробить сложные алгоритмы на небольшие под-алгоритмы и делать так чтобы они работали на максимально большой области типов и хорошо повторно использовались 🙂
Size: a a a
A
V
A
A
АО
getproperty умеет разве хорошо диспатчить? Я об этом никогда не задумывался особо, но он же вроде бы должен быть type unstable.MW
Те, кто работает плотно с Julia, подскажите, ее уже можно использовать в небольших standalone скриптах?
Я год назад пробовал написать небольшой standalone скрипт, который запускается по таймеру, собирает из API json'ы, делает расчет, пишет в файл и завершает работу.
К моему удивлению этот скрипт работал каждый раз секунд около 20, тогда как «медленный» python работал какие-то миллисекунды. Я написал в форумы, мне посоветовали запускать мой код из REPL, который все время висит в памяти. Я тогда немного удивился и забил на julia.
Подскажите, сейчас это починили?
АО
AP
AP
АО
АО
АО
AP
АО
for name in fieldnames(x) работает медленно, а x.foo быстро.AP
AP
АО
function foo(x)
if x == 1
return 0
elseif x == 2
return -1.0
elseif x == 3
return "asdsad"
elseif x == 4
return 'a'
end
end
@code_warntype foo(2)
julia> @code_warntype foo(2)
Variables
#self#::Core.Const(foo)
x::Int64
Body::Any
1 ─ %1 = (x == 1)::Bool
└── goto #3 if not %1
2 ─ return 0
3 ─ %4 = (x == 2)::Bool
└── goto #5 if not %4
4 ─ return -1.0
5 ─ %7 = (x == 3)::Bool
└── goto #7 if not %7
6 ─ return "asdsad"
7 ─ %10 = (x == 4)::Bool
└── goto #9 if not %10
8 ─ return 'a'
9 ─ return nothing
julia> @btime foo(2)
0.019 ns (0 allocations: 0 bytes)
-1.0
АО
code_warntype обманывает немного.AP
AP