Size: a a a

Kotlin Community

2020 May 03

AN

Alexander Nozik in Kotlin Community
Den Den
Это я сделал, теперь как какой нибудь компонент подклбчить
Для реактовых компонентов надо обертки писать. Ну и лучше в JS чате.
источник

DD

Den Den in Kotlin Community
Понял, спасибо
источник

VS

Vladimir Sitnikov in Kotlin Community
Это неплохой код, но можно ускорить.

Проблема в том, что массив создаётся слишком маленький, и JVM вынуждена делать range check.

"По-нормальному" нужно делать вот так: https://github.com/netty/netty/pull/9896/files

Ключевое место:

        // Generate the lookup table that converts an hex char into its decimal value:
       // the size of the table is such that the JVM is capable of save any bounds-check
       // if a char type is used as an index.
       HEX2B = new byte[Character.MAX_VALUE + 1];
источник

QH

Quantum Harmonizer in Kotlin Community
Vladimir Sitnikov
Это неплохой код, но можно ускорить.

Проблема в том, что массив создаётся слишком маленький, и JVM вынуждена делать range check.

"По-нормальному" нужно делать вот так: https://github.com/netty/netty/pull/9896/files

Ключевое место:

        // Generate the lookup table that converts an hex char into its decimal value:
       // the size of the table is such that the JVM is capable of save any bounds-check
       // if a char type is used as an index.
       HEX2B = new byte[Character.MAX_VALUE + 1];
уйблин, это 65к байт?)
источник

QH

Quantum Harmonizer in Kotlin Community
там byte на входе, можно 256
источник

QH

Quantum Harmonizer in Kotlin Community
на выходе, кстати, половинки байтов, так что тут я б сэкономил память
источник

AN

Alexander Nozik in Kotlin Community
Когда-то у нас в эксперименте был код с экономией половинок байт. Сложно поддерживать, сложно использовать. Я это запретил. Потом мы сделали зип...
источник

AN

Alexander Nozik in Kotlin Community
Вместо 5% выиграли 80.
источник

QH

Quantum Harmonizer in Kotlin Community
ну, lookup table не зазипуешь. Roaring bitmaps можно разве что.
источник
2020 May 04

VS

Vladimir Sitnikov in Kotlin Community
Quantum Harmonizer
уйблин, это 65к байт?)
131'072 байт, но это static, поэтому невелика потеря.
источник

AN

Alexander Nozik in Kotlin Community
Хочу конфигурирование градла на корутинах! Готов даже сам сделать, если кто-то проспонисирует.
источник

I

Ilmir in Kotlin Community
Alexander Nozik
Хочу конфигурирование градла на корутинах! Готов даже сам сделать, если кто-то проспонисирует.
Что это даст?
источник

AN

Alexander Nozik in Kotlin Community
Ilmir
Что это даст?
Сейчас при написании плагинов для грэдла имеется дикая боль от того, что не понятно какая часть кофигурации в какой момент уже существует, а в какой нет. Например ты не можешь делать плаги, который просто так добавляет зависимости, потому что соурс-сетов в этот момент еще нет. И еще куча всего. На все это есть полтора инструмента в виде afterEvaluate и plugins.withPlugin. Хотя на самом деле процентов 80 всей модели должны быть Deferredами с колбэками
источник

I

Ilmir in Kotlin Community
Alexander Nozik
Сейчас при написании плагинов для грэдла имеется дикая боль от того, что не понятно какая часть кофигурации в какой момент уже существует, а в какой нет. Например ты не можешь делать плаги, который просто так добавляет зависимости, потому что соурс-сетов в этот момент еще нет. И еще куча всего. На все это есть полтора инструмента в виде afterEvaluate и plugins.withPlugin. Хотя на самом деле процентов 80 всей модели должны быть Deferredами с колбэками
Неа, не так. Надо явно разделять фазы initialization и run. И не давать во время компиляции скрипта юзать конструкции из run во время initialization.
источник

AN

Alexander Nozik in Kotlin Community
Ilmir
Неа, не так. Надо явно разделять фазы initialization и run. И не давать во время компиляции скрипта юзать конструкции из run во время initialization.
Ты не понял, там initialization сам по себе очень многофазный как только у тебя взаимодействуют несколько плагинов
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Nozik
Сейчас при написании плагинов для грэдла имеется дикая боль от того, что не понятно какая часть кофигурации в какой момент уже существует, а в какой нет. Например ты не можешь делать плаги, который просто так добавляет зависимости, потому что соурс-сетов в этот момент еще нет. И еще куча всего. На все это есть полтора инструмента в виде afterEvaluate и plugins.withPlugin. Хотя на самом деле процентов 80 всей модели должны быть Deferredами с колбэками
Так они и завозят туда свой аналог Deferred-ов потихоньку.
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Так они и завозят туда свой аналог Deferred-ов потихоньку.
да. Но очень не везде и очень больно. На корутинах можно было бы сделать без лапши из колбэков
источник

I

Ilmir in Kotlin Community
Alexander Nozik
Ты не понял, там initialization сам по себе очень многофазный как только у тебя взаимодействуют несколько плагинов
А, ты про написание плагинов, а не билдскриптов.
источник

AN

Alexander Nozik in Kotlin Community
Ilmir
А, ты про написание плагинов, а не билдскриптов.
да, разумеется.
источник

AM

Andrew Mikhaylov in Kotlin Community
А в скриптах корутины доступны?
источник