приложения стек потока выполнения попадает в кеш cpu, что является одной из причин более быстрой работы стека по сравнению с кучей? Или где-то наломал дров?
Нет)
Есть интерпретация байткода, есть JIT компиляция, вас что интересует?
Стек работает быстрее по двум причинам: 1.Память просить не надо 2.Аппаратная поддержка x86
Опять же, не знаю, правильно ли я буду излагать поток мысли. JIT компиляции - преобразование байт-кода в машинные инструкции и сохранения результата компиляции в памяти, пока все правильно, или здесь тоже я не так все представляю?
Но я не увидел противоречия с тем,что написал.
Это что касается компиляции в нативный код, при интерпретации байткода это не так существенно
А есть различия?))
Извиняюсь, на каком этапе в сравнении с JIT компиляцией происходит интерпретация байт-кода?
В случае виртуальной машины стек находится в виртуальной машине, со своими опкодами.
Немного не так выразился, сравнивать нужно нативный код и байткод для CLR
Если бы мы жили в мире где процы не умеют виртуализацию)
Байткод CLR компилится и потом в памяти лежит кусок байтов, на которые можно натравить процессор
А если нормально сказать?
Выкинуть из этого предложения слова "после компиляции приложения" и "одной из причин" заменить на "одной из многих причин" и будет хорошо =) Стек в рантайме и компиляция - слабо связаны друг с другом.
Ну, у дотнета обычно не бывает рантайма до компиляции. Поэтому… в какой-то мере это верно, хотя и очень странно изложено :)
Обсуждают сегодня