2014-07-02 7 views
1

У меня есть файл * .shp, который я загрузил, и я использую часть моей модели (вычисляя кратчайшие пути). Это довольно большой файл формы с тысячами дорожных ссылок и перекрестков и мостов, представленных узлами. Я надеялся ускорить работу пространства поведения, не загружая эту карту каждый раз, и поэтому создал отдельную процедуру для загрузки карты и определения весов ссылок и т. Д. В этой процедуре у меня есть флажки с явным сбросом, так что все эффективно вычищенный, если я загружу новую карту. В настройке я определяю атрибуты черепахи для каждого прогона. Между каждым прогоном я использую прозрачные всплывающие окна и четкие выходные данные и сбросы. Когда я запускаю эту модель, пространство поведения начинает медленно запускаться после нескольких настроек даже с выходом таблицы. Однако, если я объединять карту загрузки и файлы установки вместе, то есть карта загружается для каждого запуска нового пространства поведения, тогда скорость поддерживается повсюду.Сохранение карт между прогонами BehaviorSpace

Пример - работает медленно, но карты не перезагружается каждый раз

to-load-map 
    Clear-all 
    ... code for loading map 
    reset-ticks 
end 

to-setup-model 
    clear-all-plots 
    clear-outputs 
    ... code for setting up turtle variables 
    reset-ticks 
end 

Пример (поддерживает скорость - но должен загрузить карту)

To-setup 
    clear-all 
    ...code for loading map 
    ...code for setting up turtle variables 
    reset-ticks 
end 

Мой вопрос: я упускаю что-то, что бы помочь ускорить процесс, не перезагружая карту?

+0

«Когда я запускаю эту модель, пространство поведения начинает медленно запускаться после нескольких настроек» - мне непонятно, почему это было бы. Есть ли у вас гипотеза? –

+0

@seth: Я замечаю, что используется все больший объем памяти - от 350 000 КБ, когда модель открывается, а карты загружаются до 1,100,000 кб в конце 2000-го. это зависит от длины моделирования, то есть ниже для нижних прогонов. Я бы подумал, что распределение памяти будет оставаться относительно постоянным для каждого прогона. Я также заметил, что размер файла табличного вывода остается неизменным в течение всего времени моделирования. Должно ли это подняться - как написано постоянно? –

+0

re: память, это звучит как очень хорошая подсказка. Медленность, вероятно, является лишь побочным эффектом постоянно растущего использования памяти, что является ненормальным, поэтому вы должны попытаться изолировать причину этого. Вы отключили вывод в формате таблицы, не так ли? См. Http://stackoverflow.com/q/24397338/86485 –

ответ

0

Не знаю ничего о вашей модели, интересно, действительно ли у вас «утечка памяти» с большим количеством информации, накапливающейся в глобальных переменных, которые каждый раз не очищаются процедурой to-setup-model. Существуют ли, возможно, другие глобальные переменные, которые можно явно переинициализировать в to-setup-model, которые могут помочь освободить часть этого пространства? Например, у вас есть большие таблицы, висящие между прогонами, которые только получают больше пар ключ-значение и никогда не обрезаются назад? Просто мысль.

Я почти всегда определяю процедуру clear-most, которая очищает все, кроме больших данных, которые я не хочу каждый раз загружать/вычислять. К сожалению, это означает, что я должен перечислить переменные для инициализации в деталях, но мне нравится как можно больше освобождать между прогонами, чтобы ускорить процесс. - Glenn

Смежные вопросы