Размерные VS ссылочные типы

Плюсую к Спектатору - треш какой-то. То замеры производительности китайского кода, то написание установщиков вручную, то замеры скорости компиляции, то нейронные сети и OpenCL, то 102 вкладки в браузере… В теме с названием “Размерные VS ссылочные типы”. Что курим, товарищи?:wink:

Дискуссии про “ближе к процессору” так и вовсе доставляют :-)) Ближе к нему то, что в кэше, а эффективная работа с ним далеко за пределами того, где там переменные объявлены…

Может быть, есть смысл повторить эксперимент на C#?

А вообще, почему бы не добавить массивы в стиле C++. То есть возможность размещать их в стек? Скажем, вот так:

var Stack_Arr := Single[3]; // Массив в стеке
var Obj_Arr := new Single[3]; // Массив в куче

В .Net с этим сложности.

Да, сложности есть, но, как я понял, это всё же возможно.

Заменил как-то класс Union в парсере паскаля на структуру (а там 6-7 полей объектного типа). Получилось падение производительности на 30%.

Ну, этого мало чтоб что то утверждать. Наверное, переменные этого типа часто передавались или копировались, или что то типо того. Если бы записи были абсолютно бесполезны - их не вводили в .Net из C. В количестве функционала записи явно уступают классам, значит логично предположить что их смысл в том, чтоб быть упрощёнными, но более оптимизированными.

Вы хотите сказать, что в случае с классами, передавалась только ссылка, а в случае со структурами - копировалось всё содержимое? Тогда Вы правы.