Здравствуйте, Mr.Delphist, Вы писали:
MD>Здравствуйте, andsm, Вы писали:
A>>То, что это технически возможно, это-то понятно.
A>>Тут хочется понять, какие потенциально могут быть проблемы.
A>>Unmanaged часть данных — это примерно 50 Гб.
A>>Managed часть, если ее делать принимает запросы по gRPC, вызывает Unmanaged c полученными параметрами, отдает ответ.
A>>Получает сообщения от Кафки, передает в unmanaged.
A>>Запрашивает снапшоты данных на старте, у других сервисов, отдает в unmanaged. Ну и еще тут же всякие метрики и Prometheus.
A>>Т.е. managed объекты долго не живут, объемы незначительны.
MD>Тогда в целом всё выглядит очень ОК. Главное чтобы все эти гигабайты лились сразу в unmanaged-память, и из неё же прямиком брались при отправке в gRPC.
Тут не всё так просто.
Передать массив туда обратно без лишней копии это просто:
byte myarray = new byte[1024*1024];
fixed (byte* ptr = myarray)
{
CallCpp(ptr);
}
Это подходящий вариант ?