来自这些链接: -
http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=python3&lang2=java
http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=python3&lang2=java
http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=python3&lang2=java
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=python3&lang2=java
他们清楚地表明GAE的最佳选择是java,如果我们正在寻找可扩展功能。
我的问题是,如果我们使用其中一个框架,会对性能产生什么影响呢?
e.g。
django --> python
spring MVC --> java
slim3 --> java
... etc
答案 0 :(得分:3)
只是一个快速的说明 - 不要把它作为一个明确/全面的比较:
Django和Spring都有很长的启动时间,这可能导致请求被删除。我会选择一个专门为GAE制作的框架:tipify,slim3等。
答案 1 :(得分:3)
我在GAE上使用了Python和Java,一个使用Python + Django完成了一个项目,另一个使用了Java / Groovy + Spring。
Python + Django最初很容易开发,但不容易维护。它有足够快的启动时间,良好的文档,atc。
Java + Spring需要更多开发(某些部分需要比使用django更多的部分需要2-3倍),启动时间有问题(即使您使用warmup
请求)。但它更稳定。
Python项目有太多错误,大多数没有任何可见(对你)的原因:(并且很难找到导致这种错误的原因,因为lang的动态特性。而且,准备手动修补一些库你我正在使用。不要误会我的意思,我有多年的Python经验,但是很难在像GAE这样的分布式系统上维护它,并且它确实存在代码质量方面的问题:(
另一方面,Java非常有效。如果您的代码有问题,您将看到解决此问题所需的所有信息,经过几次迭代后,您将修复几乎所有错误。除了一个:有时你会看到启动错误:(不常见,顺便说一句 PS顺便说一句,为GAE选择正确的语言取决于你所知道的语言更好:)如果你还不了解Java - 不要从它开始,它需要至少1 - 2年才能理解语言。答案 2 :(得分:2)
这些基准测试将(可能)标准设置上的Python 3与Java进行了比较。这些基准测试的工作量也没有任何迹象表明。
App Engine以与您在标准桌面上找到的完全不同的配置运行Python 2.5,因此基准测试真的不适用。
此外,可伸缩性不是关于这些基准 - 它们最多只能产生恒定的因子差异。如果您的应用程序是按比例构建的,它将以任一语言缩放到相同的程度。可扩展性取决于您构建应用程序和使用底层基础架构的程度。
我建议使用您最熟悉的语言和框架 - 不要根据基准选择您的语言。