在GAE中混合Python与更快语言以优化性能
我刚入门Python和GAE(Google App Engine),有个问题想问一下。通常在Python中,我们的做法是只有在必要的时候才去优化代码,先解决那些最紧急的瓶颈。而实现这一点的一种方法就是把程序中最关键的部分用C语言重写。
那么,使用GAE后,我们是不是就永远失去了这种可能性呢?因为Google的Go语言现在是GAE中(或者说一旦编译得更高效就会是)最快的语言,那我们能不能在同一个应用中把Python和Go混合使用呢?还有其他什么方法可以达到类似的效果呢?
2 个回答
5
我觉得你可能在过早地优化你的程序了。对于大多数网页应用来说,花费最多时间的往往是在进行远程过程调用(RPC),也就是在等待系统的其他部分完成一些事情,比如处理数据库查询。在剩下的时间里,很多时候也会花在C语言的代码上。实际上,能在处理普通请求时需要大量计算的网页应用是相对少数的。
如果你的应用正好属于那少数需要大量计算的情况,你可能需要重新考虑是否要用Python来写整个应用,因为在App Engine上没有C语言的扩展,或许可以选择Java或Go。如果你的应用属于99%不需要进行大量计算的那类,就不用担心这个问题。
9
想了解如何在Google App Engine中使用多种编程语言,可以查看这个链接:可以在Java中写一部分代码,在Python中写另一部分吗?
简单来说,每个应用的版本只能用一种运行语言。
不过,你可以有两个不同版本的应用,分别用不同的语言编写,它们可以通过数据存储来互相传递信息。
另外,你也可以有两个不同的应用,使用两种不同的语言,它们可以通过请求来互相传递信息。