Комментарии 10
хорошо бы для пары картинок изобразить как оригинал так и найденные аппроксимации
Похоже ваш фреймворк стал родителем нового направления искусства — абстрактный полигонизм)
Как я понимаю, Вы используете Proxy для реализации интерфейсов?
Не замеряли, какие накладные расходы с точки зрения производительности с ними связаны?
Не замеряли, какие накладные расходы с точки зрения производительности с ними связаны?
Чистые накладные расходы не замерял.
Сравнивал реализацию на java.lang.Proxy c реализацией при помощи cgLib.
Результаты сильно зависят от сложности фитнесс-функции.
Пример с поиском минимума функции на cgLib работает в полтора-два раза быстрее. Но, пример с аппроксимацией изображения работает столько же — отрисовка изображений и попиксельное сравнение операция дорогая, на фоне которой вызов нескольких методов через прокси занимает пренебрежимо мало. Та же самая ситуация наблюдалась в случае с обучением нейросети.
Поэтому я решил сделать все на стандартных Proxy. Тем не менее, я оставил штатный способ подменить фабрику прокси на cgLib (ну или любую другую) в рантайме.
Сравнивал реализацию на java.lang.Proxy c реализацией при помощи cgLib.
Результаты сильно зависят от сложности фитнесс-функции.
Пример с поиском минимума функции на cgLib работает в полтора-два раза быстрее. Но, пример с аппроксимацией изображения работает столько же — отрисовка изображений и попиксельное сравнение операция дорогая, на фоне которой вызов нескольких методов через прокси занимает пренебрежимо мало. Та же самая ситуация наблюдалась в случае с обучением нейросети.
Поэтому я решил сделать все на стандартных Proxy. Тем не менее, я оставил штатный способ подменить фабрику прокси на cgLib (ну или любую другую) в рантайме.
А как так у вас получилось, что из метода public Comparable doCalcRating(Solution solution) возвращается -double?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
EvoJ — удобный фреймворк для генетических алгоритмов