Способ уменьшить время загрузки при вызове скрипта Джулии из скрипта Python? - PullRequest
1 голос
/ 10 марта 2020

Я работаю над проектом, в котором части легче писать в Python, а другие части легче писать в Джулии. Я только сейчас, наконец, все собрал, и хорошая новость в том, что это работает! Но он ужасно медленный из-за перезагрузки пакетов Джулией при каждом вызове (и он вызывается часто). Я знаю, что должен был подумать об этом заранее, но мы здесь.

Есть ли способ, которым я могу "инициализировать" Джулию в скрипте Python и загрузить модули, которые я хочу использовать один раз, вместо оплаты цена каждый раз, когда я хочу использовать это? Прямо сейчас сценарий Julia просто вызывается с использованием subprocess.call(['juliaScript.jl']).

Начинаю сожалеть об этом подходе, но я действительно не хочу go выполнить и переписать весь код Julia в Python (или наоборот). Сценарий Julia вызывается с двойным вложением для l oop в Python, поэтому затраты на загрузку очень значительны и раздражают.

Я слышал о Precompile.jl, но он кажется очень сложным, и я думаю, Я предпочел бы перевести весь код между языками, чем изучать это ... Я надеюсь, что у кого-то есть замечательное исправление хакерской работы, прежде чем я начну переписывать все. :)

Если это поможет, то пакеты, которые я загружаю в Julia, это DataFrames, CSV, FFTW и Statistics.

1 Ответ

2 голосов
/ 10 марта 2020

Вместо того, чтобы постоянно вызывать Джулию, используйте постоянный сервер, например, Joseki.jl (пример bin), затем на стороне Python используйте requests, чтобы попросить его делать вещи (см. Пост JSON с использованием Python Запросы ).

...