Size: a a a

Kotlin Community

2020 January 10

QH

Quantum Harmonizer in Kotlin Community
Alexey Otts
А вообще не понятно, что мешало запоминать всё что надо запендить в билдере, а потом на вызове build один раз аллоцировать массив
ну вот зааппендил ты число
* куда положить — забоксишь и положишь в ArrayList или создашь отдельный массив примитивов?
* а какая у него длина, сколько выделять?
источник

AO

Alexey Otts in Kotlin Community
ну забоксить вроде не так страшно звучит, ну или страшно, хз вобщем да
источник

QH

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

AO

Alexey Otts in Kotlin Community
ну вконце всё равно придётся сделать один
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
но вобоще, мне кажется, билдеру стоило бы не расти, как эррэйлист, а хранить массив массивов чаров и добавлять туда
Это же ещё дороже
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
Это же ещё дороже
почему? Если много аппендов и ростов, копирований же меньше
источник

QH

Quantum Harmonizer in Kotlin Community
тут всё зависит от того, как мы создаём строку — через публичный апи с копированием или в обход его
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
почему? Если много аппендов и ростов, копирований же меньше
А когда стринг отдает массив char он разве не копирует ?
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
тут всё зависит от того, как мы создаём строку — через публичный апи с копированием или в обход его
В итоге ты все равно будешь копировать
источник

BP

Bogdan Panchenko in Kotlin Community
Вот изначальный массив закончился, нужно выделить новый. Те же яйца только в профиль
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
А когда стринг отдает массив char он разве не копирует ?
getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) копирует сразу куда надо)
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
Вот изначальный массив закончился, нужно выделить новый. Те же яйца только в профиль
вариант эррэйлиста: выделить больше и скопировать туда старый
мой вариант: просто выделить (или забрать из пула) больше (или столько же) и считать его продолжением старого
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
вариант эррэйлиста: выделить больше и скопировать туда старый
мой вариант: просто выделить (или забрать из пула) больше (или столько же) и считать его продолжением старого
Где хранятся "старый" и "новый" ?
источник

КР

Кирилл Романенко in Kotlin Community
Quantum Harmonizer
вариант эррэйлиста: выделить больше и скопировать туда старый
мой вариант: просто выделить (или забрать из пула) больше (или столько же) и считать его продолжением старого
Типо "связанные эррейлисты"? Хотя так доступ по индексу будет работать не так быстро, как в массивах и эррейлистах, как сейчас.
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
Где хранятся "старый" и "новый" ?
в эрэйлисте внутри стрингбилдера
источник

М

Михаил in Kotlin Community
недавно обсуждали вроде, но не помню к чему пришли, как правильнее сделать чтобы async не ложил джобу до вызова await?
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
в эрэйлисте внутри стрингбилдера
"идем и бенчмаркаем" - Один jvm-ный философ
источник

NK

Nikita Kulikov in Kotlin Community
Здравствуйте. Не подскажете возможно ли через корутины сделать так, чтобы потребители, которые приходят с одной и той же задачей, не создавали новую задачу, а подключались к ответу старой?
источник

QH

Quantum Harmonizer in Kotlin Community
Nikita Kulikov
Здравствуйте. Не подскажете возможно ли через корутины сделать так, чтобы потребители, которые приходят с одной и той же задачей, не создавали новую задачу, а подключались к ответу старой?
отдавать один и тот же Deferred
источник

NK

Nikita Kulikov in Kotlin Community
Quantum Harmonizer
отдавать один и тот же Deferred
Спасибо большое
источник