Community

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