Size: a a a

Kotlin Community

2020 April 24

RI

Ruslan Ibragimov in Kotlin Community
источник

AN

Alexander Nozik in Kotlin Community
По-моему объекты без состояния оптимизируются уже давно. Разве нет?
источник

AN

Alexander Nozik in Kotlin Community
нет, похоже не оптимизируется
источник

AM

Andrew Mikhaylov in Kotlin Community
Никто там ещё не изобрёл до сих пор логирования вызовов методов в рамках компайлер плагина? Я уже статьи три, наверна, видел, доклад на котлинконфе, щас вон одну даже нашёл статью про эрроу-мета ровно с таким же примером, а готового решения до сих пор нет?..
источник

RI

Ruslan Ibragimov in Kotlin Community
Andrew Mikhaylov
Никто там ещё не изобрёл до сих пор логирования вызовов методов в рамках компайлер плагина? Я уже статьи три, наверна, видел, доклад на котлинконфе, щас вон одну даже нашёл статью про эрроу-мета ровно с таким же примером, а готового решения до сих пор нет?..
А как это используется?
источник

AM

Andrew Mikhaylov in Kotlin Community
Ruslan Ibragimov
А как это используется?
Вешаешь аннотацию на метод, а плагин сам генерит лог стейтменты с именем класса, функции, параметрами и подсчётом временем выполнения функции в конце
источник

SB

Sergey Barmin in Kotlin Community
Alexander Nozik
По-моему объекты без состояния оптимизируются уже давно. Разве нет?
а в случае с классами разве не достаточно заприватить конструктор чтоб избавиться от минуса?
источник

AN

Alexander Nozik in Kotlin Community
Sergey Barmin
а в случае с классами разве не достаточно заприватить конструктор чтоб избавиться от минуса?
Тогда нельзя будет члены класса вызывать
источник

SB

Sergey Barmin in Kotlin Community
ах. все забываю о том что это не статичная история
источник

RI

Ruslan Ibragimov in Kotlin Community
Andrew Mikhaylov
Вешаешь аннотацию на метод, а плагин сам генерит лог стейтменты с именем класса, функции, параметрами и подсчётом временем выполнения функции в конце
Ну это какие-то долго выполняющиеся функции получается? Или как он будет агрегировать информацию по тысячам вызовов в секунду?
источник

AN

Alexander Nozik in Kotlin Community
На самом нагрузка на компаньон - это одно поле, которое будет оптимизировано JIT-ом.
источник

AM

Andrew Mikhaylov in Kotlin Community
Ruslan Ibragimov
Ну это какие-то долго выполняющиеся функции получается? Или как он будет агрегировать информацию по тысячам вызовов в секунду?
Ну лично мне время выполнения не интересно.

А вообще в мобилочках дела чуть иначе, тут можно жить без аггрегирования.
источник

RI

Ruslan Ibragimov in Kotlin Community
Ну вот и ответ видимо, есть разные задачи)
Чтобы тысячи вызовов и аггрегировать - нужно либу тащить еще, куда данные складывать. Делать тест/прод билд, потому что это может быть дороговато столько информации собирать

На JVM-Backend есть AOP которые отлично для разработки решает эту проблему, и есть JVM Agent который в общем и в проде можно запустить, и он не требует либу. Ну и какой-нибудь JVM-TI должен тоже решать задачу весьма эффективно
источник

AM

Andrew Mikhaylov in Kotlin Community
Фигня в том, что в ведре ни с AOP, ни с агентом не сложилось :)

Очевидно, само логирование можно было бы делегировать фреймворку для логирования. Большую часть вопросов это снимает. Я ж всего лишь о лог стейтменте в начале функции, который иначе пишется руками :)
источник

VP

Vladimir Petrakovich in Kotlin Community
Andrew Mikhaylov
Вешаешь аннотацию на метод, а плагин сам генерит лог стейтменты с именем класса, функции, параметрами и подсчётом временем выполнения функции в конце
А часто нужна такая трассировка вызовов со всеми аргументами?
источник

AM

Andrew Mikhaylov in Kotlin Community
Vladimir Petrakovich
А часто нужна такая трассировка вызовов со всеми аргументами?
Нет. А часто нужно, я не знаю, с компасом работать?
источник

AM

Andrew Mikhaylov in Kotlin Community
Как обычно, блин, пришёл спросить, видел ли кто-нибудь готовое решение -- тут же завалили вопросами, зачем оно мне нужно :)
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Как обычно, блин, пришёл спросить, видел ли кто-нибудь готовое решение -- тут же завалили вопросами, зачем оно мне нужно :)
ынтыресна же
источник

RI

Ruslan Ibragimov in Kotlin Community
Andrew Mikhaylov
Как обычно, блин, пришёл спросить, видел ли кто-нибудь готовое решение -- тут же завалили вопросами, зачем оно мне нужно :)
Так это стандартный ответ в чате на любую проблему)

Второй ответ: иди запили сам) На самом деле, создай репу, напиши hello-world в мире компиляторных плагинов
источник

AM

Andrew Mikhaylov in Kotlin Community
Ну вот у меня щас задача по интересному куску проекта, где копипаста на копипасте и копипастой погоняет. Переделывать нормально времени нет, а на логах, которые пишут не то, я уже два раза нагрелся. Я не думаю, что это такая прям редкая хотелка.
источник