У меня работает некоторый код, чувствительный к производительности, и вы хотите улучшить скорость. Я использую vnormdiff
и findmax
много и задавался вопросом, являются ли эти самые эффективные функции? Любые мысли очень оценили.Векторные нормы и поиск Максимум (значение и индекс)
1
A
ответ
1
Всякий раз, когда вы сталкиваетесь с проблемой производительности, хорошо рассмотреть вашу проблему с двух сторон. Во-первых, мой общий алгоритм лучше всего может быть? Если вы используете алгоритм O(N^2)
, но доступен O(N)
, это может иметь огромное значение. Похоже, вы изучаете соседей, поэтому некоторые из более refined nearest-neighbor algorithms (которые зависят от размерности) могут быть полезными.
Во-вторых, обсуждение оптимизации не может начаться без профилирования информации. Имеется документация на профилировщике Julia here и графический инструмент для ее проверки here.
Тим, спасибо за другое полезное предложение. Они выглядят как отличные инструменты (хотя я все еще жду, пока juno загружает графический профайлер!). Я запустил базовый профайлер, и findmax все еще кажется узким местом, хотя он вообще не показывает vnormdiff. Чтобы дать немного контекста, я строю экономическую модель, которая по существу состоит из нескольких алгоритмов сжатия (в основном, итерации функции стоимости). Я использую vnormdiff в настройке «inf», т. Е. Максимальную абсолютную разницу, чтобы проверить, когда конверсионное отображение сходится. –