golang和python的未来_Python比Golang慢多少?实际上两者差异并不大

Python一直被诟病并发很弱,确实,因为GIL的关系,Python在单进程运行的情况下,无法利用多核CPU,所以就被其他能在单进程的情况下利用多核CPU的语言“吊打”性能了。

但在使用了多进程后,结果仍然如此吗?为此,我特意做了一组实验。

我用VirtualBox新建了一台ubuntu虚拟机,配置为10G内存,4核CPU

使用apache2的ab进行测试,并发数为1000,请求10万次。

Python程序代码如下:

from sanic import Sanic

from sanic.response import json,text

app = Sanic()

@app.route("/")

async def test(request):

return text("hello")

if __name__ == "__main__":

app.run(host="0.0.0.0", port=8000,access_log=False,workers=4)

测试结果,平均每秒处理15000个请求

Golang程序如下:

package main

import (

"fmt"

"log"

"net/http"

)

func index(w http.ResponseWriter, r *http.Request) {

fmt.Fprintf(w, "test message")

}

func main() {

http.HandleFunc("/", index)

err := http.ListenAndServe(":9090", nil)

if err != nil {

log.Fatal("ListenAndServe: ", err)

}

}

测试结果,平均每秒处理18000个请求

虽然Golang没有开多进程,但是Golang是能单进程跑满CPU的,所以开不开多进程并没有多大必要。

从上面的结果可以看出,Golang平均每秒处理18000个请求,Python平均每秒处理15000个请求,Golang的标准库比Python的Sanic快大约20%

由此可以看出Python在Web端的运行效率其实并没有想象的那么差劲。这次的实验让我不禁揣测,黒Python性能差,一秒只能处理几十个请求的朋友,是否只是刚刚入门Python而以。而同样鼓吹Golang性能牛,从而踩Python和其他语言的朋友,是否也都是在入门级别。因为Web后台的处理速度,和语言的关系并不大,瓶颈会在数据库和架构,而不是语言本身。

真心希望大家能公平的对待每一种语言,而不是随意抹黑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值