加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

这个实验说明了可以用golang实现一个代替nginx+php-fpm的应用服务器

发布时间:2016-10-29 22:05:49 所属栏目:PHP教程 来源:segmentfault
导读:副标题#e# #p#副标题#e#而且可以通过提供golang函数给php挪用的方法实现I/O的异步化,现实的收益取决于后端的http处事的耽误,err:=theEngine.NewContext() iferr!=nil{ fmt.Println(err) } context1.Output=os.Stdout iferr!=nil{ fmt.Println(err) } fmt.

用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这样的扩展自身是支持异步回调的,从而实现基于协程的调治。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读