这个实验说明了可以用golang实现一个代替nginx+php-fpm的应用服务器
用ab -n 100 -c 4 可以跑出这样的功效 Requestspersecond:3183.70[#/sec](mean) Timeperrequest:1.256[ms](mean) Timeperrequest:0.314[ms](mean,要害的代码在: //生涯当前协程上的php上下文 oldServerCtx:=engine.ServerContextGet() fmt.Println(oldServerCtx) deferengine.ServerContextSet(oldServerCtx) oldExecutorCtx:=engine.ExecutorContextGet() fmt.Println(oldExecutorCtx) deferengine.ExecutorContextSet(oldExecutorCtx) oldCoreCtx:=engine.CoreContextGet() fmt.Println(oldCoreCtx) deferengine.CoreContextSet(oldCoreCtx) //放弃全局的锁,newTestObj) wg:=sync.WaitGroup{} wg.Add(2) before:=time.Now() fmt.Println(1) gofunc(){ engineLock.Lock() deferengineLock.Unlock() context1。 有了Golang之后,,则可以到达 Requestspersecond:10073.54[#/sec](mean) Timeperrequest:0.397[ms](mean) Timeperrequest:0.099[ms](mean, 这个尝试声名白可以用golang实现一个取代nginx+php-fpm的应用处事器,在一个应用里殽杂PHP和Go两种说话,只是php是同步的以是只给php袒露了同步的execute,像libcurl这样的扩展自身是支持异步回调的,从而实现基于协程的调治。 (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |