Try English version of Quizful



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

В разделе "Статьи" можно найти обучающие статьи по информационным технологиям, а также узнать о новостях сервиса Quizful.

Лента обновлений
ссылка 22:03:47
Комментарий от yourun:
Я понимаю вашу боль с этим вопросом, постараюсь его отред...
ссылка 21:13:52
Комментарий от mailtestcpp2:
При любом порядке вычесления выражения (x++ && y++)...
ссылка 19:54:45
Комментарий от sack:
Блин, долго сомневался, унаследованы ли интерфейсы от Syste...
ссылка 19:43:13
Комментарий от sack:
Согласен с остальными: никакого отношения к ООП вопрос не и...
ссылка 19:39:11
Комментарий от sack:
akaDElpher, +1
Когда сам столкнулся с этим вопросом, сразу ...
Статистика

Тестов: 152, вопросов: 8531. Пройдено: 366433 / 1771944.

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

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

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

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

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

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

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

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