Нижняя линия Я не думаю, что это хорошая идея.
В моем личном опыте все доступные в настоящее время проекты, которые утверждали, что поддерживают оба, имеют различные дефекты и проблемы с поддержкой в библиотеках и даже некоторые языковые функции, а не даже упоминание о производительности во время исполнения. Если вы предпочитаете простое решение сокета или файлы с отображением памяти и объявляете их нестандартными и с ловушками, то я могу только сказать вам, что рамки, которые вы пытаетесь использовать, - это еще больше подводных камней.
Плюс, идея обмена памятью немного озадачивает меня. Какую точную часть данных вы пытаетесь поделиться? Имейте в виду, что структура памяти C# и Java не является взаимно совместимой, вы либо сохраняете некоторые вещи с помощью стороннего стандарта, например. аудио/видео/изображения и т. д .; или вам нужно написать свой собственный уровень сериализации, который по существу отключает вас от возможности работать на одном и том же объекте с обеих сторон. Если вы уже написали свой собственный уровень сериализации, что блокирует вас от использования решения сокета, которое лучше всего поддерживается с обеих сторон?
Если у вас есть проблемы с производительностью, я могу сказать, что, поскольку вы используете решение Java + C#, разница в производительности между MMF, сокетом или общей памятью незначителен по сравнению с любой производительностью, которую может достичь ваше приложение. Если ваше приложение действительно требует такой производительности, вам лучше сделать это на C++ или даже ANSI C.
Так что я полностью согласен со всеми комментариями, что материал, который вы пытаетесь достичь, кажется не в правильном направлении.
Можете вы pl. уточните, что является мотивацией для этого? – ravi
Вы запрашиваете [IKVM.NET] (http://www.ikvm.net/)? – Andreas
Не совсем. Я обновил вопрос, чтобы показать пример библиотеки, утверждающей, что сделал именно это (внутрипроцессные Java и C# VM, работающие в одном процессе). –