Какие интерпретаторы управляют памятью своих потоков внутри собственного процесса? - PullRequest
1 голос
/ 22 апреля 2011

Мне просто интересно, какие интерпретаторы управляют памятью своих потоков внутри своего собственного процесса?

В виртуальных машинах VMware при нехватке памяти VMware раздувает «шарик» внутри виртуальной машины. Это позволяет гостевой ОС «разумно выбирать», какую память менять на диск, что позволяет памяти из этой ОС использоваться другими виртуальными машинами.

Одной из проблем является Java, когда ОС не может «видеть / понимать» память внутри JRE, и когда всплывающая подсказка раздувается, гостевая ОС будет эффективно случайным образом выгружать память на диск и может легко заменить критически важные функции JRE. чем возможность разумно выбирать, какие биты памяти менять.

У меня такой вопрос, а какие другие интерпретаторы ведут себя так же, как Java при управлении памятью?

Похоже ли Microsoft .NET в этом отношении? Другие переводчики?

С уважением Ted

Ответы [ 2 ]

0 голосов
/ 03 июля 2011

Итак, что вы на самом деле спрашиваете, реализует ли какой-либо интерпретатор свой собственный алгоритм передачи данных на диск. Насколько я знаю, ни один интерпретатор, созданный в последнее время, не делает этого - учитывая цену оперативной памяти в настоящее время, это не очень хорошее использование инженерных ресурсов. (Существует школа мысли, на которую я подписываюсь, в которой говорится, что теперь мы должны рассмотреть также вопрос об обмене дисками на уровне операционной системы.)

Системы реляционных баз данных, разумеется, выполняют свою собственную замену диска, отчасти потому, что они были разработаны, когда оперативная память была более дорогой, и отчасти потому, что они все еще иногда имеют дело с необычно большими объемами данных.

И память на этом ржавая, но я могу почти поклясться, что хотя бы одна из старых систем MUD также реализовала свой собственный код подкачки; большой MUD мог работать до десятков мегабайт, и в те дни, возможно, приходилось использовать только несколько мегабайт памяти.

0 голосов
/ 22 апреля 2011

Я не уверен, что вы можете выборочно поменять память, используемую определенными потоками, поскольку основное различие между потоком и процессом заключается в том, что они разделяют общее пространство памяти, а причина использования потоков над процессами заключается в том, что они считается более легким именно потому, что вы отказываетесь от изоляции процессов, управляемых ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...