Насколько мне известно, вы не можете напрямую делиться коллекциями между несколькими процессами .NET, но придется маршалировать данные через границы процессов. Это приводит к значительным затратам ресурсов процессора и потребляет память для объектов как в процессе кэширования, так и на клиенте.
Вероятно, вы могли бы достичь чего-то более лучшего с файлами, отображенными в память, но это все же не позволяет вам напрямую сопоставлять объекты .NET в общей памяти - но вы говорите, что «данные представляют собой серию байтов, сериализованных вручную», поэтому это может быть достаточно близко?
Я не совсем понимаю, .NET отображаемые файлы памяти , отличная вещь от нативного кода в том, что вы просто рассматриваете файлы как указатели памяти, тогда как .NET MMF вам нужно вызывать методы доступа, и, следовательно, выполнять копирование памяти в объекты .NET (?) ... но, вероятно, это может работать лучше, чем чтение файлов снова и снова.