Я хотел бы запустить тяжелые вычисления в Julia в течение фиксированного времени, например 10 секунд. Я пробовал это:
timer = Timer(10.0)
while isopen(timer)
computation()
end
Но это не работает, так как вычисления никогда не позволяют планировщику задач Джулии взять под контроль. Поэтому я добавил yield()
в l oop:
timer = Timer(10.0)
while isopen(timer)
yield()
computation()
end
Но теперь есть значительные накладные расходы от вызова yield()
, особенно когда один вызов computation()
короткий. Думаю, я мог бы вызывать yield()
и isopen()
только каждые 1000 итераций или около того, но я бы предпочел решение, в котором мне не приходилось бы настраивать количество итераций каждый раз, когда я меняю вычисления. Есть идеи?