很多做站长的朋友问过我一个问题:换Go语言的CMS能省多少钱?
我的回答是:取决于你的流量。流量越低,省得越少。流量越高,省得越多。
我最近做了一组测试,把AnQiCMS(Go语言)和WordPress(PHP)放在同一台2核4G的服务器上跑,看看实际差距。
为什么PHP费内存
PHP的执行模型是”请求-处理-响应-销毁”。每一个HTTP请求来了,PHP-FPM就创建一个进程来处理,处理完就释放。这个模型简单直接,但有几个问题:
第一,进程创建和销毁有开销。虽然PHP-FPM有进程池机制,但高并发的情况下还是会频繁创建新进程。
第二,每个进程都有独立的内存空间。一个PHP-FPM进程处理完一个请求后,内存不会立刻释放,会留一部分在内存里备用。这就是为什么PHP-FPM的常驻内存总是比实际需要的高。
第三,PHP需要解释执行,不是编译执行。每次请求都要解释一遍代码,这个过程中会产生很多临时变量,占用内存。
WordPress本身不大,但它的插件机制会不断增加新的PHP文件,每次请求可能需要加载十几个甚至几十个插件文件,内存占用自然就上去了。