Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只有128MB内存的最小node.js Web服务是否可行_Node.js_Embedded Linux - Fatal编程技术网

只有128MB内存的最小node.js Web服务是否可行

只有128MB内存的最小node.js Web服务是否可行,node.js,embedded-linux,Node.js,Embedded Linux,我需要在嵌入式硬件盒的接口控制处理器上运行web服务。供应商声称,因为它运行Linux,我应该能够编译和运行我想要的任何东西。然而,因为它是一个硬件非常有限的平台,400MHz PPC,128MB ram,我怀疑这是一个比较乐观的评估 不幸的是,目前我无法在几天内从EE的手中撬开一个来尝试在硬件上测试东西,看看什么能起作用,什么不能起作用。需要通过专用连接器与机箱中的所有其他控制器进行接口,这也意味着,任何在线使用rPI的设备都不是一个严肃的选择,尽管这会使我的工作更轻松。一种可能是使用qemu

我需要在嵌入式硬件盒的接口控制处理器上运行web服务。供应商声称,因为它运行Linux,我应该能够编译和运行我想要的任何东西。然而,因为它是一个硬件非常有限的平台,400MHz PPC,128MB ram,我怀疑这是一个比较乐观的评估


不幸的是,目前我无法在几天内从EE的手中撬开一个来尝试在硬件上测试东西,看看什么能起作用,什么不能起作用。需要通过专用连接器与机箱中的所有其他控制器进行接口,这也意味着,任何在线使用rPI的设备都不是一个严肃的选择,尽管这会使我的工作更轻松。

一种可能是使用qemu创建一个虚拟机,并在其上安装一个类似busybox的小型linux系统

一个裸linux系统在8MB上运行良好,一个最小的Debian7系统需要大约32MB的ram


您可以从一些linux ppc映像开始,安装node.js,扔掉所有不需要的东西,然后看看它在128 MB下的性能。

一种可能是使用qemu创建一个虚拟机,并在其上安装一个小型linux系统,如busybox

一个裸linux系统在8MB上运行良好,一个最小的Debian7系统需要大约32MB的ram


您可以从一些linux ppc映像开始,安装node.js,扔掉所有不需要的东西,然后看看它在128 MB内存下的性能。

对于运行、交叉编译和测试OpenWRT,它有一个很棒的SDK。我将它与git和这个Makefile一起使用:

include $(TOPDIR)/rules.mk

SRC_REPO:=~/Projects/openwrt/projectname/ #git repo

PKG_NAME:=projectname
PKG_VERSION:=$(shell (git ls-remote $(SRC_REPO) | grep refs/heads/master | cut -f 1 | head -c 7))
PKG_RELEASE:=2

PKG_BUILD_DIR:=$(BUILD_DIR)/projectname-$(PKG_VERSION)


include $(INCLUDE_DIR)/package.mk

define Package/projectname
    SECTION:=MyProjects
    CATEGORY:=MyProjects
    TITLE:=configuration utility
    DEPENDS:=+lua-wsapi-base +luafilesystem +lighttpd +lua-cjson +lighttpd-mod-rewrite +lighttpd-mod-cgi
endef

define Package/projectname/description
    configuration utility
endef

define Build/Prepare
    git clone $(SRC_REPO) $(PKG_BUILD_DIR)
endef

define Build/Compile
    cd $(PKG_BUILD_DIR); make clean build dist
endef

define Package/projectname/install
    $(CP) $(PKG_BUILD_DIR)/dist/* $(1)/
endef

$(eval $(call BuildPackage,projectname))
对于嵌入式系统上的网站,我使用AngularJS Ubiquiti在其新产品上使用BackboneJS。其想法是将逻辑从设备移动到浏览器,并通过api进行控制


对于API实现,我使用Lua而不是CGI。另一种CGI兼容语言是PHP-2 afaik、Perl、Bash、Python或compile C\C++代码的PHP-CI fork。

用于运行、交叉编译和测试OpenWRT的SDK很棒。我将它与git和这个Makefile一起使用:

include $(TOPDIR)/rules.mk

SRC_REPO:=~/Projects/openwrt/projectname/ #git repo

PKG_NAME:=projectname
PKG_VERSION:=$(shell (git ls-remote $(SRC_REPO) | grep refs/heads/master | cut -f 1 | head -c 7))
PKG_RELEASE:=2

PKG_BUILD_DIR:=$(BUILD_DIR)/projectname-$(PKG_VERSION)


include $(INCLUDE_DIR)/package.mk

define Package/projectname
    SECTION:=MyProjects
    CATEGORY:=MyProjects
    TITLE:=configuration utility
    DEPENDS:=+lua-wsapi-base +luafilesystem +lighttpd +lua-cjson +lighttpd-mod-rewrite +lighttpd-mod-cgi
endef

define Package/projectname/description
    configuration utility
endef

define Build/Prepare
    git clone $(SRC_REPO) $(PKG_BUILD_DIR)
endef

define Build/Compile
    cd $(PKG_BUILD_DIR); make clean build dist
endef

define Package/projectname/install
    $(CP) $(PKG_BUILD_DIR)/dist/* $(1)/
endef

$(eval $(call BuildPackage,projectname))
对于嵌入式系统上的网站,我使用AngularJS Ubiquiti在其新产品上使用BackboneJS。其想法是将逻辑从设备移动到浏览器,并通过api进行控制


对于API实现,我使用Lua而不是CGI。另一种CGI兼容语言是PHP-2 afaik、Perl、Bash、Python或compile C\C++代码的PHP-CI fork。

我知道该设备有128MB内存?如果没有假设的Web服务,其中有多少仍然是免费的?@FrankMeerkötter正等着我简单地弄到一个并看一看。据我所知,嵌入式供应商拥有的唯一功能就是与硬件其余部分使用的can/etc总线进行通信,这是一个运行称为BOA的Web服务器的古老CGI脚本,可以在>15年前的非常低端微控制器上运行。所以我怀疑限制因素是他们Linux安装的精简程度。我意识到,在查看系统之前,我最多可以得到一个可能的答案,即操作系统是否足够精干。潜在的有用数据点:仅以交互方式运行nodejs v4.3,我的VmPeak=728920 kB。运行相同版本的node时,使用webpack编译一个相对较小的仅前端的项目,可以产生大约两倍的收益。@BrianMcFarland感谢这个数据点,您能添加测试系统在根本不运行node时占用的内存吗?似乎表明64MB是可行的,但非常紧凑/受限,其中256MB运行正常。所以128MB的内存对你可以运行什么样的模块有一些限制。我知道这个设备有128MB的内存?如果没有假设的Web服务,其中有多少仍然是免费的?@FrankMeerkötter正等着我简单地弄到一个并看一看。据我所知,嵌入式供应商拥有的唯一功能就是与硬件其余部分使用的can/etc总线进行通信,这是一个运行称为BOA的Web服务器的古老CGI脚本,可以在>15年前的非常低端微控制器上运行。所以我怀疑限制因素是他们Linux安装的精简程度。我意识到,在查看系统之前,我最多可以得到一个可能的答案,即操作系统是否足够精干。潜在的有用数据点:仅以交互方式运行nodejs v4.3,我的VmPeak=728920 kB。运行相同版本的node时,使用webpack编译一个相对较小的仅前端的项目,可以产生大约两倍的收益。@BrianMcFarland感谢这个数据点,您能添加测试系统在根本不运行node时占用的内存吗?似乎表明64MB是可行的,但非常紧凑/受限,其中256MB运行正常。因此,128MB的内存对您可以运行的模块类型有一些限制。