2014-01-27 1 views
3

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

ответ

4

Вы планируете precompile?

EDIT: Думая об этом еще немного, precompile не может работать, как вы запрашиваете неустойчивые функции типа. Джулия - динамический язык, и нет ничего, что помешало бы вам написать функцию, которая использует совершенно другой путь кода в зависимости от значения аргумента и глобальных переменных. Precompile будет знать только типы аргументов и, возможно, не сможет скомпилировать все функции, вызываемые вашей функцией, потому что они еще не могут быть решены.

Важная часть в любом случае измеряет то, что вы намерены измерить. Microbenchmarks должен исключать компиляцию, но если вы измеряете всю свою программу, вы должны использовать некоторые суждения. У меня сложилось впечатление, что кеширование скомпилированного кода для кода userland будет реализовано в ближайшее время, а затем время компиляции будет менее важным.

+0

Yup, все, спасибо. –