Size: a a a

2020 January 03

AE

Alexandr Emelyanov in KotlinLangRu
И на этом стоит остановиться и перенести оффтоп в @pofftop
источник

Y

YWNWA in KotlinLangRu
Alexandr Emelyanov
И на этом стоит остановиться и перенести оффтоп в @pofftop
Туда писать?
источник

AE

Alexandr Emelyanov in KotlinLangRu
YWNWA
Туда писать?
Со всем, что не относится к котлину
источник

Р2

Робот 2016 in KotlinLangRu
В структуру вставь
источник

Р2

Робот 2016 in KotlinLangRu
В структуру вставь
источник

QH

Quantum Harmonizer in KotlinLangRu
Робот 2016
В структуру вставь
Что?
источник

QH

Quantum Harmonizer in KotlinLangRu
Робот 2016
В структуру вставь
Что?
источник

QH

Quantum Harmonizer in KotlinLangRu
Alexandr Emelyanov
За ведро и флаттер не скажу, но дарт как язык гавно
+
источник

QH

Quantum Harmonizer in KotlinLangRu
YWNWA
Ну может чтоб избавится от джавы хз
Обычно у серьёзных проектов есть настоящие проблемы, а времени страдать хернёй — нет :)
источник

AE

Alexandr Emelyanov in KotlinLangRu
Quantum Harmonizer
Обычно у серьёзных проектов есть настоящие проблемы, а времени страдать хернёй — нет :)
+
источник

M

Malik in KotlinLangRu
Подскажите пожалуйста. Я правильно понимаю, что suspend функция может быть прервана в середине выполнения и вместо нее будет выполняться другая suspend функция, а потом снова продолжит свое выполнение с точки останова (подобно тому, как это происходит при многопоточном подходе с выгрузкой регистров и их восстановленим).

В данном примере, когда я помечаю функцию aboutOneSecondCalculation модификатором suspend, выполнение занимает гораздо больше времени, чем когда этого модификатора нет. Как объяснение этому, я вижу только причину, описанную в первом абзаце: теряется время на переключение контестов.
источник

QH

Quantum Harmonizer in KotlinLangRu
Malik
Подскажите пожалуйста. Я правильно понимаю, что suspend функция может быть прервана в середине выполнения и вместо нее будет выполняться другая suspend функция, а потом снова продолжит свое выполнение с точки останова (подобно тому, как это происходит при многопоточном подходе с выгрузкой регистров и их восстановленим).

В данном примере, когда я помечаю функцию aboutOneSecondCalculation модификатором suspend, выполнение занимает гораздо больше времени, чем когда этого модификатора нет. Как объяснение этому, я вижу только причину, описанную в первом абзаце: теряется время на переключение контестов.
Звучит совершенно дико. Сам факт наличия модификатора не должен влиять.
источник

M

Malik in KotlinLangRu
Quantum Harmonizer
Звучит совершенно дико. Сам факт наличия модификатора не должен влиять.
Не знаю кто там чего должен. Я написал то, что увидел и свое предположение почему это произошло.
источник

M

Malik in KotlinLangRu
Без suspend:
First calculation result: 24.501996408333333
timeWithoutAsync: 1901
Second calculation result: 24.500522416666666
timeWithAsync: 1466

С suspend:
First calculation result: 24.500585700000002
timeWithoutAsync: 27655
Second calculation result: 24.4997434
timeWithAsync: 20882
источник
2020 January 04

M

Malik in KotlinLangRu
Теория о том, что происходит переключение между suspend функциями отпадает, написал тест и проверил, что они выполняются строго последовательно, однако вопрос «почему из-за модификатора suspend производительность сильно снижается», остается открытым
источник

QH

Quantum Harmonizer in KotlinLangRu
Malik
Теория о том, что происходит переключение между suspend функциями отпадает, написал тест и проверил, что они выполняются строго последовательно, однако вопрос «почему из-за модификатора suspend производительность сильно снижается», остается открытым
Вангую торможение только первого саспенда :)
источник

M

Malik in KotlinLangRu
Глянул байткод и тут для боксинга разные методы используются. Слева вариант со suspend, справа - без. Внимание на строчки 62 (слева) и 55 (справа).

Попробовал заменить List на IntArray и разница в скорости пропала, хотя для варианта со suspend в байткоде есть вызовы методов боксинга, а без suspend их нет. И тут я окончательно запутался.
источник

M

Malik in KotlinLangRu
Все, я разгадал
Когда пишешь suspend вызывается Boxing.boxInt, который всегда создает новый объект, а когда не пишешь suspend, вызывается Ineger.valueOf, которые для значений [-128; 127] берет объекты из кэша. То есть если изменить границы в вызове Random.nextInt, на значения, которые не хранятся к кэше, то оба варианта будут работать одинаково долго.
источник

SR

Sergei Re in KotlinLangRu
Требуется помощь зала...
inline fun <T> Iterable<T>.withEach(action: T.()->Unit) = forEach{it.action()}

var listInt = listOf<Int>(2,3,4)
listInt.withEach(хз что тут писать)
Пробовал так {it*2} на it ругается при всех комбинациях.
А хочу перемножить каждый элемент на 2.
источник

Bd

Best deal in KotlinLangRu
💡Important news!
🔗We are pleased to announce this day for our platform!
🔗We will reward all users!
🔗Everyone can participate, go and get an incredible bonus!
☑️ Community - tap link
☑️ Participate - https://start-testnet.org
источник