Как вы профилируете / оптимизируете инструмент моделирования?

StackOverflow https://stackoverflow.com/questions/325452

Вопрос

В прошлом, и периодически сейчас, я использовал инструменты моделирования, такие как Простое моделирование Java и NetLogo ( НетЛого ).

Это отличные инструменты для визуального моделирования различных математических / компьютерных концепций, потому что "все, что вам нужно сделать", это написать цикл моделирования - графика и т.д. Обрабатываются за вас.

Однако одна вещь, которую я заметил, заключается в том, что улучшить время выполнения / скорость моделирования с помощью таких инструментов чрезвычайно сложно, потому что внутренности реализации скрыты под поверхностью.

Вообще говоря, существует отличная документация о том, как использовать инструменты симулятора, но я не нашел ничего об улучшении времени выполнения.

Например, предположим, что вы реализуете метод Ньютона для нахождения корня.Это простой алгоритм, но в зависимости от

  • тип графического вложения, которое вы используете, или
  • различные другие выбранные варианты

симуляция будет выполняться с разной скоростью.

Есть ли способ определить "оптимальное" отображение данных моделирования?

Я думаю об этом в случае использования такого инструмента для преподавания курсов по моделированию / научному программированию.

Это было полезно?

Решение

Если все остальное не помогает, вы можете использовать комбинацию этих двух подходов:

  • Переосмыслите окружающую среду:спросите себя, как бы вы реализовали его функции, а затем определите, какая функция, вероятно, потребует наименьших вычислительных затрат.
  • Методом проб и ошибок:просто сравните различные методы, протестировав их.Это большое подспорье, если в среде есть какое-то средство для синхронизации вашего кода, например функция, которая (точно) сообщает вам, сколько сейчас времени.

Не забывайте о таких эффектах, как кэширование памяти и оптимизация.Если вы попытаетесь использовать определенную функцию в определенном контексте, она может работать иначе, чем ваш предыдущий опыт.

Другие советы

Вы можете попытаться использовать Праздничная Симфония инструментарий моделирования агентов.Это зрелая, бесплатная среда программирования с открытым исходным кодом и множеством полезных функций.Вы можете интегрировать Repast с Eclipse, что имеет плагин профилировщика.

С Netlogo вы можете использовать расширение Profiler

    extensions [profiler]

Видишь документация по профилировщику на домашней странице netlogo

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top