轻量级webserver kepler/thttpd/shttpd简单对比
来源:互联网 发布:hadoop编程书籍 编辑:程序博客网 时间:2024/06/14 06:58
最近需要一个简单的webserver,对几个做了下简单对比:
选择时原则如下:
- 支持cgi: 需要用cgilua
- 占用内存少
- 占用cpu资源少
- 最好支持跨平台
1: kepler/xavante
优点:
- 跨平台,支持windows,linux等主流操作系统。
- 由于本身就是用lua写得,该框架对lua的支持非常好。
缺点:对每次请求都是新建一个lua虚拟机,如果是同一个文件多个请求,则会查看以前缓存的虚拟机是否有效,如果有效则仍然采用该虚拟机。
虽然具有回收机制(我也改了代码强制回收),但内存并没见明显下降,所以内存使用会越来越多,直到你所有文件都访问完毕。
2: shttpd
优点:
- 跨平台,支持windows,linux等主流操作系统。
- 代码少(只有3K行)
- 内部支持perl,python,预计下个版本支持lua
缺点:在linux下安装后运行,直接吓了我一跳,用去了10M内存,不用再仔细看了,直接扔掉吧
3: thttpd
优点:代码少,占用内存少
缺点:
- 只能运行在类linux操作系统上
- 只要类似 http://ip/cgi-bin/cgi/xxxx的调用,都直接交给cgi处理了
- 对所有文件都是一次读取完毕,同时缓存下来。
- 不能进行高权限的系统调用,比如说调用如下命令,则不会成功(改了代码,以root用户登陆,不成功)
os.execute("reboot")
本来最倾向于使用kepler/xavante的,但内存从不见回收,只好抛弃,而shttpd在试用时就直接抛弃了,那么就只好采用thttpd,看了下代码,将其对cgi的处理改了一下,对文件的缓存,暂时不予处理(缓存就缓存吧,静态页面一般也不大),而对系统调用就考虑其他方式吧
最后修改后的结果是:除非进行文件上传,否则总共只有1M不到的内存消耗。
由于网页是用cgilua写的,故在windows下就直接用xavante做webserver,嵌入式linux下就改用thttpd了
- 轻量级webserver kepler/thttpd/shttpd简单对比
- 轻量级webserver kepler/thttpd/shttpd简单对比
- lighttpd,thttpd,shttpd - 轻量级webserver介绍
- lighttpd,thttpd,shttpd - 轻量级webserver介绍
- 三个轻量级WebServer--lighttpd,thttpd,shttpd介绍
- 三个轻量级WebServer--lighttpd,thttpd,shttpd介绍
- 三个轻量级WebServer--lighttpd,thttpd,shttpd介绍
- 三个轻量级WebServer--lighttpd,thttpd,shttpd介绍
- 轻量级的webserver
- FW:lighttpd,thttpd,shttpd - 轻量…
- 一款轻量级的桌面WebServer通讯组件
- 一款轻量级的桌面WebServer通讯组件
- 一款轻量级的桌面WebServer通讯组件
- 一款轻量级的桌面WebServer通讯组件
- 自定义轻量级的HTTP WebServer (WEB服务器)
- thttpd
- thttpd
- 一个简单的webserver
- 网站ICO标示怎么操作
- EXS与EXSi的区别
- QTP描述性编程
- C# 对Outlook联系人的增、删、查
- java.lang.IllegalStateException: Write attempted after request finished
- 轻量级webserver kepler/thttpd/shttpd简单对比
- 新手跟着学Asp.net MVC2 -Controller
- 最少硬币问题
- 访问地图http://clustrmaps.com/zh/admin/action.php
- table的边框线设置
- 写入位置0xcccccccc时发生访问冲突
- 回溯算法
- servfox源码分析
- table的边框线设置