python能否构建大型应用?

提到python,很多同学的第一印象是开发快运行慢,觉得做不了大项目。但其实在高并发环境下,出现瓶颈的大部分不是在开发语言,而是数据库。不相信的同学可以测试一下数据库并发写入的速度究竟能达到多少,维护过的这么多个系统,包括秒杀的系统,只要设计得当,python写的系统在单服务器(1核512m)应对过千并发都不是问题。别小看1千并发,大部分情况下,一个系统有超过十个并发都挺不错的,哪有那么多千万级并发。

下面从各个维度分析python能否构建高并发大型应用:

涉及大量CPU运算的场景,例如做分词这种场景,基本上可以换成java或者c来处理了。曾遇过一个场景,用20台1核1G服务器,全部cpu跑满。换成java重写之后,仅需一台服务器,并且cpu最多去到50%。

内存场景,一般来说没有内存泄露,内存不会有太大的波动。基本上并发上去了,内存也不会增长多少。并且相对于java这种语言,python真心节省内存。

网络IO,包括请求第三方api和数据库读写。这种场景,一方面tornado这种异步框架可以保持大量的连接,并且不阻塞后续的请求。另一方面,哪怕django,flask这种同步框架,加上gevent的补丁,同步写的代码也有异步的效果。

频繁的架构调整,因为python是弱类型语言,所以接口的变更,或者传递错误的类型都很难在开发阶段发现。所以依赖规范化的开发,和严谨的测试。

对于这个问题,我的答案是python是可以构建大型应用的。并且在高并发情况下也有对应的解决办法。