О работе

Jul 18, 2012 09:34

Как приятно все-таки написать что-нибудь хорошее в смысле кода. Увеличить в 30 раз производительность класса в критическом пути, а хоть даже и без особых ухищрений, просто убрав бесполезные циклы и пересоздания объектов и закэшировав метаинформацию. Домой после такого всегда с прекрасным настроением идешь. Сегодня пожалуй ещё подобное попробую ( Read more... )

work

Leave a comment

Comments 6

sisian July 18 2012, 12:09:27 UTC
> Увеличить в 30 раз производительность класса в критическом пути

а вот интересно, во сколько раз увеличилась производительность всего решения? :)

Reply

alishka July 18 2012, 16:13:33 UTC
Патч релиз выкачу, тогда узнаем. Думаю этот класс станет незаметен на общем фоне, а то его добавление замедлило время работы регрессионных тестов у клиента на 20% с 5 до 6 часов.

Reply

cgem February 4 2013, 17:09:15 UTC
Это ж какой там быдлокод, если без особых ухищрений можно повысить производительность в 30 раз. Code WTF ждет своих героев!

Reply

alishka February 5 2013, 00:57:55 UTC
Да не то чтобы очень страшный. Просто в сеттерах пересоздавались immutable коллекции каждый раз ибо тот кто писал не расчитывал на то, что будут в них класть по x000 элементов. А тот кто потом использовал взял самый простой метод добавить элемент.
Поверх этого абстракция еще лежала которая каждый раз по аннотациям находила эти методы через рефлексию.
Достаточно было закешировать метаинформацию один раз и использовать методы, которые подменяли коллекцию целиком. Соответственно выкинулись все ненужные итерации и пересоздания коллекций.
Можно было сразу сделать поприличнее, но кто же об этом думает... :(

Reply


Leave a comment

Up