Try English version of Quizful



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

Свои вопросы для тестов можно добавлять на странице с информацией о тесте. При этом для некоторых тестов добавление вопросов закрыто

Лента обновлений
ссылка 09:16:58
Комментарий от uic:
много вопросов, содержащих синтаксис с++11.
для теста по STL...
ссылка Nov 20 18:33
Комментарий от kozak95:
согласен
ссылка Nov 20 14:11
Комментарий от Leff:
pt, pc? Вы это серьезно? Рубеж 2017-2018 за окном!
Зачем де...
ссылка Nov 20 13:47
Комментарий от Leff:
19/20, но много вопросов по тем понятиям, которые уже давно...
ссылка Nov 20 01:38
Добавлен вопрос в тест CSS - Основы
Статистика

Тестов: 153, вопросов: 8578. Пройдено: 387276 / 1881085.

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

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

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

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

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

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

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

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