java vs python for GAE

java vs python for GAE,java,python,performance,google-app-engine,web-frameworks,Java,Python,Performance,Google App Engine,Web Frameworks,从这些链接:- 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.ph

从这些链接:-

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和Spring都有很长的启动时间,这可能导致请求被丢弃。我会使用一个专门为GAE设计的框架:tipify、slim3等等。

这些基准在(大概)标准设置上比较Python 3和Java。也没有迹象表明这些基准测试测试的是哪种工作负载

AppEngine运行Python2.5,它的配置与标准桌面上的配置截然不同,因此基准测试并不适用

此外,可伸缩性与这些基准无关——它们最多只能产生一个常数因子差异。如果你的应用程序是按比例构建的,那么它将以任何一种语言扩展到相同的程度。可伸缩性取决于您的应用程序架构和底层基础设施的使用情况


我建议您使用您最熟悉的任何语言和框架—不要根据基准选择您的语言。

我在GAE上同时使用Python和Java,一个项目使用Python+Django完成,另一个项目使用Java/Groovy+Spring

Python+Django最初很容易开发,但维护起来并不那么容易。它有足够快的启动时间,良好的文档,atc

Java+Spring需要更多的开发(某些部分的开发时间是使用django的2-3倍),启动时间有问题(即使您使用的是
warmup
请求)。但它要稳定得多

Python项目有太多错误,大多没有任何明显的(对您而言)原因:(由于lang的动态特性,很难找到导致此错误的原因。另外,请准备好手动修补您正在使用的一些库。别误会,我有多年的Python经验,但在GAE这样的分布式系统上维护它确实很困难,而且它的代码质量确实存在问题:(

另一方面,Java工作得很好。如果您的代码出现问题,您将看到修复此问题所需的所有信息,经过几次迭代后,您将修复几乎所有的错误。除了一个:有时您会看到启动错误:(顺便说一句,不太常见


顺便说一句,为GAE选择正确的语言取决于你更了解哪种语言:)如果你还不懂Java-不要从它开始,至少需要1-2年才能理解语言。

除非你一直保持活力,否则你的应用程序会在一段时间内没有活动时进入睡眠状态。这让spring mvc有点麻烦,因为它需要很长的启动时间。有谎言、该死的谎言和基准测试。。。“毕竟,事实就是事实,尽管我们可以笑着互相引用这位明智政治家的话,但谎言——该死的谎言——和统计数字,仍然存在。”Leonard Henry Courtney,1895年我是Tipfy的忠实粉丝。我相信在大多数Python应用程序引擎框架比较中,它的速度最快标准设置>>没有说明这些基准测试的工作负载类型test@igouy这真的是完全不相关的,因为我的观点仍然是:基准测试不在App Engine上,也不在任何近似App Engine的设置上,而且它们也不使用相同版本的Python。当然,基准测试不在App Engine上。但您将向GAE付费所有计算系统所依赖的CPU时间、内存等消耗量。@Nick Johnson-你猜到了,但不知道这些测量值不是针对App Engine的。你说的很明显是错的-“没有迹象表明这些基准测试的工作负载是什么样的。”“你的建议是正确的,我们应该经常检查我们打算使用的系统,而不是打赌它们会像其他任意机器一样运行。
 django     --> python
 spring MVC --> java
 slim3      --> java
 ... etc