Если я захочу запустить два или более консольных приложения под Linux в моно, буду ли я нести накладные расходы на виртуальную машину Mono для каждого процесса, или части виртуальной машины будут повторно использоваться в разных процессах? Если это не так, есть ли способ поделиться частями памяти, используемой моно-виртуальными машинами?
Я хотел бы добиться следующего: предположим, что для виртуальной машины mono требуется 100 МБ, когда многие сборки стандартной библиотеки загружаются приложением. Специфика приложения А заставляет его использовать дополнительные 50 МБ ОЗУ (таким образом, общий объем оперативной памяти, используемой процессом А, составляет 150 МБ), а особенности приложения Б делают его дополнительными 120 МБ ОЗУ (поэтому общий объем оперативной памяти, используемый процессом Б, составляет 220 МБ. ).
Если работает Mono, будут созданы две независимые виртуальные машины Mono, тогда я буду использовать 370 МБ ОЗУ. Однако, если память таких вещей, как базовая библиотека, распределяется между виртуальными машинами, то я бы использовал только 100 + 50 + 120 = 270 МБ ОЗУ.
Дело в том, что я могу быть в ситуации, когда я запускаю десятки или сотни сравнительно небольших приложений, и я обеспокоен тем, что память, зарезервированная каждой моно-виртуальной машиной, значительно ухудшит объем занимаемой памяти при развертывании, в то время как ОЗУ требования каждого отдельного приложения на самом деле не будут такими большими. Я говорю о консольных приложениях (веб-сервисах).
Спасибо