爱看网的内存占用情况
古老的榕树 (http://5-wow.com) 采用了Go 语言开发的信息网站,上线以来,流量都很低,主要是新网站要搜索引擎收录,需要漫长的过程,目前网站开通半个月,每日 pv 在 120-700,ip:10-29 个之间,包括我自己的访问,其实多数是我自己的访问。通过proc 查看内存的使用情况,发现网站占用的物理内存是 26M, 占用虚拟内存是 273M。拿客户相似的网站(采用Java开发的) 对比,该网站每日 pv ip,和古老的榕树比较都接近,甚至比古老的榕树稍微低一点,对方的物理内存是 174M, 占用虚拟内存是 4G。Java 使用虚拟内存很惊人,可能和 tomcat 的配置有关吧。
至于物理内存占用量,Java 接近 Go 的7倍。这个和 Debian 多语言性能比较的对比结果基本吻合。抛开虚拟内存不说,能不能这么说,采用Go 开发的网站,只用一台服务器,Java开发的网站,可能需要到6-7台服务器了。
古老的榕树,开始采用Martini + PostgreSQL的框架开发,后来看了作者博客介绍,尝试用了Negroni(中间件:Gorilla Mux,Render,Binding,Gzip,Gorp,Pq,) + PostgreSQL,Martini 和 Negroni 都是出自同一个作者,后者是作者为了追求简单化,非魔幻化,尽少使用 Go 反射功能,改进的产品,从文中描述来看,我觉得作者更喜欢 Negroni,毕竟 Negroni 是开发 Martini 过程中,发现问题,不断反省,求变,出来的产物。
开发过程中,学到了不少的东西,其中我喜欢 古老的榕树 采用的技术架构,虽然它们还有很多不成熟的因素,但我相信,随着时间的推移,东西会慢慢变好。
古老的榕树 架构采用的技术:
negroni: https://github.com/codegangsta/negroni
gorilla mux: https://github.com/gorilla/mux
render: https://github.com/unrolled/render
binding: https://github.com/mholt/binding
gorp: https://github.com/go-gorp/gorp
pq: https://github.com/lib/pq
其实最近想把 Gorilla Mux 改成 pat 试试,不知道有没有必要。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。