[Idea Fragments]2013.08.08
# 1
今晚看到好幾篇文章把golang,Node.js還有Nginx-lua拿來說事,Node.js現在自然比較熟悉,golang則有過一些了解,而Nginx-lua則少有聽到。
有好事者對Node.js和Nginx-lua做了些benchmark的工作,似乎nginx-lua的性能不錯,在CPU和內存上更勝一籌。
http://bluehua.org/demo/php.node.lua.html
?
# tenengine
http://tengine.taobao.org/
https://github.com/alibaba/tengine
tengine是taobao的nginx修改版,可以被看作一個更好的Nginx,或者是Nginx的超集。
感覺他們的ngx_http_concat_module這個模塊有些意思,它可以將對css、javascript的請求結果拼接起來,從而減少下載時間。
?
# Node.js 監測文件改動
在調試的時候,經常需要重新啟動 node.js 以便修改過的文件生效,原來第三方的 cluster 有一個配置項,可以很方便的配置監測時間間隔,文件改動后自動重新啟動 worker,但是原生的 cluster 就沒有這個功能了,需要自己來實現。
fs 模塊提供了 watch 函數,可以方便的監測文件修改,使用這個就可以來實現文件修改后自動重啟 woker 功能了。
//------------------------------------------------------------------
if (cluster.isMaster) {
??? process.title = appName + ' master';
??? console.log(process.title, 'started');
??? var workers = [];
??? // 根據 CPU 個數來啟動相應數量的 worker
??? for (var i = 0; i < numCPUs; i++) {
??????? var worker = cluster.fork();
??????? workers.push(worker.pid);
??? }
??? process.on('SIGHUP', function() {
??????? // master 進程忽略 SIGHUP 信號
??? });
??? // 監測文件改動,如果有修改,就將所有的 worker kill 掉
??? fs.watch(__dirname, function(event, filename) {
??????? workers.forEach(function(pid) {
??????????? process.kill(pid);
??????? });
??? });
??? cluster.on('death', function(worker) {
??????? var index = workers.indexOf(worker.pid);
??????? if (index != -1) {
??????????? workers.splice(index, 1);
??????? }
??????? console.log(appName, 'worker', '#' + worker.pid, 'died');
??????? worker = cluster.fork();
??????? workers.push(worker.pid);
??? });
}
//--------------------------------------------------------
?
?
?
?
轉載于:https://www.cnblogs.com/piaoger/p/3247160.html
總結
以上是生活随笔為你收集整理的[Idea Fragments]2013.08.08的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poj3252
- 下一篇: hdu 1879 继续通畅工程(最小生成