什么解释器在自己的进程中管理线程的内存



我只是想知道什么解释器在自己的进程内管理其线程的内存?

对于VMware虚拟机,当内存紧张时,VMware会在虚拟机内部充气一个"气球"。这允许客户操作系统"智能选择"要交换到磁盘的内存,允许该操作系统的内存被其他虚拟机使用。

其中一个问题是Java,操作系统无法"看到/理解"JRE内部的内存,当气球膨胀时,客户操作系统将有效地随机将内存交换到磁盘,并且可以轻松地交换出关键的JRE功能,而不是能够智能地选择要交换的内存位。

我的问题是,其他解释器在内存管理方面的行为与Java相同吗?

微软。net在这方面类似吗?还有其他口译员吗?

的问候泰德

我不确定您是否可以选择性地交换某些线程使用的内存,因为线程和进程之间的主要区别是它们共享公共内存空间,而使用线程而不是进程的原因是它们被认为更轻量级,正是因为您放弃了由操作系统管理的进程隔离。

所以你真正要问的是,是否有任何解释器实现自己的算法来交换数据到磁盘。据我所知,最近设计的解释器没有这样做——考虑到现在RAM的价格,这不是一个很好的利用工程资源的方法。(有一种思想流派,我赞同,认为我们现在应该考虑放弃操作系统级别的磁盘交换。)

关系数据库系统当然会进行自己的磁盘交换,部分原因是它们是在RAM更昂贵的时候设计的,部分原因是它们有时仍然要处理异常大量的数据。

而且,内存在这个系统上生锈了,但我几乎可以发誓,至少有一个旧的MUD系统也实现了自己的交换代码;一个大的MUD可以运行到几十兆字节,而在那个时候可能只需要在几兆字节的内存中运行。

最新更新