169 похожих чатов

Класснющие, а val (a, b) = ("a", 2) оптимизируется компилятором,

или прям создаётся тупл в рантайме и анматчится?

9 ответов

17 просмотров

Прям создаётся и распаковывается

Aλiaksandr-Siamionau Автор вопроса
Oleg ℕižnik
Прям создаётся и распаковывается

Благодарю. Лучшее комьюнити!

Oleg ℕižnik
Прям создаётся и распаковывается

Мне казалось что для людей которые занимаются компиляторами это тривиальная оптимизация

Пользователь 61534
Мне казалось что для людей которые занимаются комп...

слишком специфичный кейс, чтобы для него специально что-то делать, при том, что JIT скорее всего и так всё сделает ,что нужно

Oleg ℕižnik
слишком специфичный кейс, чтобы для него специальн...

Я понял главное что дальше jvm комьюнити не планирует уходить

Пользователь 61534
Я понял главное что дальше jvm комьюнити не планир...

В принципе, в Scala Native инвестируют. Про уходить в native пока слишком рано говорить. Пока даже до "использовать" не дошли толком 😅

Python
В принципе, в Scala Native инвестируют. Про уходит...

это я уже понял, почему и заинтересовался, что происходит на уровне спеки самой скалы (не учитывая того что ЖВМ бай дефаулт )

самого заинтересовало, посмотрел что будет, вообщем если взять такой кейс на скале и запустить с С2 получиться как то так object TestTupleUnapply { def main(args: Array[String]): Unit = { test() } def test(): Unit = { for (_ <- 1 to 100_000) { val (a, b) = (100500, 100600) println(a + b) } } } java.io.PrintStream::println201100@1 (line 821) 0x000000011fcea6c4: mov %rdx201100,%rsi Я до конца синтаксис интовый не понимаю, но судя по результату там contstexpr сработал, и сразу на принт уходит посчитанное значение (так что большинство кейсов должны быть без алокаций для случаев где С2 сгенерировал натив) UPD

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта