2012-07-11 128 views
3

运行v8 java脚本引擎所需的最小RAM是多少?V8内存使用情况

它适用于有限的存储设备。我想在android应用程序中使用node.js作为嵌入式服务器。这是个好主意吗?

+1

你知道Android使用一个Web浏览器,它使用V8引擎??应该回答你的问题 – freakish 2012-07-11 18:31:27

+0

我认为这是一个模糊的问题,node.js是否可以在Android上工作,它应该像已经注意到的那样工作,你应该使用它吗?这取决于你想要做什么。可以用本地代码完成,你应该走这条路线,因为它可能更具响应性和电池友好性,而不是使用更高级别的语言。如果你只是试图跨越平台,那么可能已有的工具就是你需要的。 – 2012-07-11 18:35:11

+0

'这是一个好主意吗?'甚至有可能吗?Node.js不仅仅是一个生活在V8引擎之上的应用程序,我认为它不是p目前可以与Android(或任何移动操作系统)一起使用。 – freakish 2012-07-11 18:50:18

回答

7

V8请求内存为1 MB块的JavaScript堆,称为。这些被分组在空间其中包含不同种类的对象。有7个空格(从,到,指针,数据,代码,单元格,地图),如果您计算大对象空间,则为8。绝对最低限度,每个空间至少需要一个页面,因此这里有7 MB。 V8本身大约3 MB(至少在ARM,YMMV上)。另外,你还需要2 MB左右的空间。所以这至少是12MB。您可能希望总共有20-30 MB可用于正常操作。

所有这些应该很容易适合任何Android设备。我知道的所有设备至少有256 MB的RAM,并且您可以预期操作系统和其他应用程序至少可以使用其中的一半。请注意,Android Web浏览器已经嵌入V8,并没有问题。浏览器的V8实例可能比Node.js服务器的V8部分具有更大的内存占用空间。

+0

一般+1,但我不能同意最后一句话。显然不做任何事情的Node.js服务器不会占用太多内存。但那不是重点,对吧?服务器应该*提供*某些东西。处理连接还可以同时处理CPU和内存。结论:总有一天我们将确定能够将手机变成远程服务器,但不是今天。 – freakish 2012-07-11 18:44:32

0

第一:我想知道如何将node.js嵌入到android应用程序中。

回答您的问题:内存使用量很大程度上取决于node.js/V8的各种编译标志,系统架构,因此您的问题无法100%回答。

调整垃圾收集器行为也可能很有趣。 (这是非常粗略的:更多的CPU(更经常地做垃圾回收)< - >更多的内存(“浪费”更多的内存和后来清理)

+0

是的,在Android中使用Node.js会非常有趣。但我怀疑这是可能的。毕竟Node.js是**更多**然后只是V8引擎。 – freakish 2012-07-11 18:49:05