我想比较不同语言和/或同一语言中不同框架的性能。这是针对用于Web开发的服务器端语言。我知道苹果与苹果的比较是不可能的,但我希望它尽可能不偏不倚。以下是一些想法:
它们可以通过每秒请求数来衡量,也可以使用for
循环并循环多次。其中一些基准应测量语言的开销(即:空函数调用),而不是它们执行某项任务的速度。我会采取一些预防措施:
我该如何改进?
答案 0 :(得分:2)
http://shootout.alioth.debian.org/
有很多好的建议(以及针对不同语言的大量样本基准)下进行。
答案 1 :(得分:1)
我所做的是编写许多单元测试,以便您可以测试图层。
例如,用PHP,Python和C#编写SOAP Web服务。
使用相同的语言编写REST Web服务(相同的Web服务,只有两种方式可以访问它们)。这个应该能够至少返回JSON和XML。
在C#和Python中编写单元测试以充当客户端,并使用各种结果类型(XML / JSON)测试REST。这很重要,因为稍后您可能需要进行测试以查看哪个是最佳的端到端,并且对于您(它应该是),JSON可能比XML更快解析。
因此,REST / SOAP服务应该转到同一个控制器,以简化您的生活。
此控制器需要测试,因为您可能需要稍后删除它对测试的影响,但是,您也可以编写测试以查看它对数据库的速度。
我会为此使用一个数据库,除非你想评估各种数据库,但是对于网络测试,只需为第2阶段做。:)
因此,您最终得到的是大量测试,每项测试都需要能够确定实际运行所需的时间。
然后你有很多数字,你可以开始分析,看看什么最适合你。
例如,我学到了(几年前我这样做),JSON比XML快,REST比SOAP快。
您可能会发现在某些语言中有些事情要难得多,因此在您完成此过程时会将其从争用中删除。
编写测试很容易,从数字中获得有意义的答案将是更难的部分,因为你的偏见可能会使你的分析变色,所以要小心。
我会用一些真正的应用程序来做这件事,这样就不会浪费工作,只是重复。
答案 2 :(得分:1)
最好采用现有基准之一:
http://www.sellersrank.com/web-frameworks-benchmarking-results/
http://avnetlabs.com/php/php-framework-comparison-benchmarks
http://www.yiiframework.com/performance/
但是如果你真的需要找出你的项目更快的框架 - 你需要使用该框架编写项目模型并对其进行测试。
答案 3 :(得分:0)
你将花费大量时间并意识到这一切都被浪费了
完成测试后,您将了解到1000000次空迭代的循环远离现实生活并达到apache基准。
然后你就不知道会破坏你以前所有结果的操作码
然后您将了解到单个数据库查询所需的时间比API调用长1000倍,因此,您对数据库访问方法的比较实际上是浪费。
然后你将学习memcache,它可以让你跳过你已经发现的一些可怕的瓶颈等等。