2015-05-30 1 views
1

У меня работает некоторый код, чувствительный к производительности, и вы хотите улучшить скорость. Я использую vnormdiff и findmax много и задавался вопросом, являются ли эти самые эффективные функции? Любые мысли очень оценили.Векторные нормы и поиск Максимум (значение и индекс)

ответ

1

Всякий раз, когда вы сталкиваетесь с проблемой производительности, хорошо рассмотреть вашу проблему с двух сторон. Во-первых, мой общий алгоритм лучше всего может быть? Если вы используете алгоритм O(N^2), но доступен O(N), это может иметь огромное значение. Похоже, вы изучаете соседей, поэтому некоторые из более refined nearest-neighbor algorithms (которые зависят от размерности) могут быть полезными.

Во-вторых, обсуждение оптимизации не может начаться без профилирования информации. Имеется документация на профилировщике Julia here и графический инструмент для ее проверки here.

+0

Тим, спасибо за другое полезное предложение. Они выглядят как отличные инструменты (хотя я все еще жду, пока juno загружает графический профайлер!). Я запустил базовый профайлер, и findmax все еще кажется узким местом, хотя он вообще не показывает vnormdiff. Чтобы дать немного контекста, я строю экономическую модель, которая по существу состоит из нескольких алгоритмов сжатия (в основном, итерации функции стоимости). Я использую vnormdiff в настройке «inf», т. Е. Максимальную абсолютную разницу, чтобы проверить, когда конверсионное отображение сходится. –