Здравствуйте,
Изменили модель, сделали чтобы обмен данными между агентами
осуществлялся путем передачи сообщений. Агенты соединены через
соответствующие порты. Модель стала работать значительно
медленнее. Это из-за связи агентов через порты?
Раньше агенты взаимодействовали между собой путем
непосредственного вызова методов и обращения к свойствам друг
друга.
Виктор Глейм — 10.12.07
Илья, обмен сообщениями через порты приводит к созданию событий в
модели. Да, этот способ будет медленнее, чем использование вызова
методов агентов, однако, как мне кажется, не столь существенно
скажется на производительности.
Могли бы Вы более подробно описать использование портов в Вашей
модели? И какое количество агентов Вы используете? Речь идет о
AnyLogic 6?
Илья — 11.12.07
Да, речь о шестом AnyLogic
Не вникая в детали, моделируется экономика города. Есть агенты
класса предприятие (порядка 40) и человек (порядка 15000). Обмен
(товары, деньги, вакансии на работу, резюме, налоги) между агентами
происходит посредством пересылки сообщений. Соответственно
создан ряд портов, по которым осуществляется обмен.
Еще вопрос: необходимо ли как то "подчищать" память после
приема и отработки сообщения или это делается автоматом?
Виктор Глейм — 11.12.07
Илья, память очищается автоматически. Если использование портов
действительно сильно сказывается на производительности, но при
этом их использование ничем не оправдано по сравнению с
применением методов, то стоит отказаться от такого варианта.