Try English version of Quizful



Раздаем бесплатные Q! подробности в группе Quizful.Alpha-test
Партнеры
Рекрутерам: Прескрининг кандидатов about
Топ контрибуторов
loading
loading
Знаете ли Вы, что

После прохождения теста можно комментировать вопросы теста, а Ваши комментарии увидят модераторы теста и пользователи, которым когда-либо эти вопросы попадались.

Лента обновлений
ссылка 09:44:15
Комментарий от rapackivi:
Выбрал ошибку компиляции, потому что не было варианта ...
ссылка 01:21:42
Комментарий от lokivava:
"Только в первичном объявлении (в теле класса) виртуаль...
ссылка 00:47:00
Комментарий от lokivava:
Скомпилил через GCC "2 0", почему "undefined behavior"?
ссылка Mar 28 17:45
Добавлен вопрос в тест SQL - Средний уровень
ссылка Mar 28 17:30
Комментарий от pampam_123:
https://testitquickly.com/2007/06/25/46/
Статистика

Тестов: 152, вопросов: 8525. Пройдено: 358773 / 1731319.

C# / Может ли ValueType проиграть в произодительности ReferenceType?

Автор: xtrimsmile  к списку      

Вопрос
Есть ли такой сценарий, при котором ValueType переменная уступит в производительности ссылочной переменной?
Ответ

Да, есть. При вызове метода с параметрами, происходит, соответственно, передача этих параметров вверх по стеку.

Вариант 1. Если для ссылочных типов копируются только ссылки, которые в 64х разрядных системах занимают 8 байтов, в 32х - 4, то для Value типов происходит копирование значения целиком, а скорость копирования зависит от размера элемента копирования.

Вариант 2. Если в качестве параметра мы передаем ValueType, а параметром является object, то происходит упаковка (т.е. мы получаем полноценный процесс создания переменной с выделением памяти в управляемой памяти), что медленнее простого копирования ссылки.

Если Вам понравился вопрос, проголосуйте за него

Голосов: 37  loading...
minato_san   somebodyg   Artin   kreghek   romkokarpo   Kosa   xjmaverickjx   Alexandr_A   vvv1313   RubyMan   zxcvb23   alexcei88   roxadams   tatiana43   vajarkov   Phemmer   re_gi_na   toddams   Mansur_777   lvadim   grave   AntonDav   xtozna   cascaded   kox   RomaKos   gekas   Estilo   klio82   Likurg   andrijk   kablagan   Bloob   polyariz   dkslayer   Feniks726   loanst