Как вы профилируете / оптимизируете инструмент моделирования?
-
11-07-2019 - |
Вопрос
В прошлом, и периодически сейчас, я использовал инструменты моделирования, такие как Простое моделирование Java и NetLogo ( НетЛого ).
Это отличные инструменты для визуального моделирования различных математических / компьютерных концепций, потому что "все, что вам нужно сделать", это написать цикл моделирования - графика и т.д. Обрабатываются за вас.
Однако одна вещь, которую я заметил, заключается в том, что улучшить время выполнения / скорость моделирования с помощью таких инструментов чрезвычайно сложно, потому что внутренности реализации скрыты под поверхностью.
Вообще говоря, существует отличная документация о том, как использовать инструменты симулятора, но я не нашел ничего об улучшении времени выполнения.
Например, предположим, что вы реализуете метод Ньютона для нахождения корня.Это простой алгоритм, но в зависимости от
- тип графического вложения, которое вы используете, или
- различные другие выбранные варианты
симуляция будет выполняться с разной скоростью.
Есть ли способ определить "оптимальное" отображение данных моделирования?
Я думаю об этом в случае использования такого инструмента для преподавания курсов по моделированию / научному программированию.
Решение
Если все остальное не помогает, вы можете использовать комбинацию этих двух подходов:
- Переосмыслите окружающую среду:спросите себя, как бы вы реализовали его функции, а затем определите, какая функция, вероятно, потребует наименьших вычислительных затрат.
- Методом проб и ошибок:просто сравните различные методы, протестировав их.Это большое подспорье, если в среде есть какое-то средство для синхронизации вашего кода, например функция, которая (точно) сообщает вам, сколько сейчас времени.
Не забывайте о таких эффектах, как кэширование памяти и оптимизация.Если вы попытаетесь использовать определенную функцию в определенном контексте, она может работать иначе, чем ваш предыдущий опыт.
Другие советы
Вы можете попытаться использовать Праздничная Симфония инструментарий моделирования агентов.Это зрелая, бесплатная среда программирования с открытым исходным кодом и множеством полезных функций.Вы можете интегрировать Repast с Eclipse, что имеет плагин профилировщика.
С Netlogo вы можете использовать расширение Profiler
extensions [profiler]
Видишь документация по профилировщику на домашней странице netlogo