我们用 Doctrine2 对 Symfony2 进行基准测试,而用 Doctrine2 对 ZendFramework2 进行基准测试。
测试包括一个裸 ZF2 和 SF2 Hello World,用于基线 Vs。相同,但 Doctrine2 加载了一个简单的对象。我们使用 ab 并仅测量每秒的请求数和每个请求的时间。
在裸框架测试期间,Hello World ZF2 的性能比 SF2 好近 2 倍。
然而,当我们进行相同的测试但将 Doctrine2 添加到混合中时,结果是相反的。SF2+D2 的表现是 ZF2+D2 的 2 倍。
我们在 Symfony2 和 ZendFramework 方面都有内部技能,所以我们可以选择两者之一,而且我们不关心 RAM 的使用,因为我们总是可以获得更多的 RAM。但我们确实关心性能,我们需要帮助最好的工具。
一些想法: - 我们相信 S2 正在做某种缓存 - 我们相信 ZF2 Doctrine2 ORM 模块可能是原因 - 我们不确定在生产中使用哪种类型的缓存?APC?Xcache? 等等
Framework + Doctrine loading an object
Concurrent:100 / Connections: 1000
Resp. T ms Req. Sec
ZF2 60 16
S2 31 32
Framework + Doctrine loading an object
Concurrent: 25 / Connections: 150
Resp. T ms Req. Sec
ZF2 57 17
S2 30 32
======================
Framework Bare
Concurrent: 100 / Connections: 1000
Resp. T ms Req. Sec
ZF2 10.5 94
S2 15.3 65.36
Framework Bare
Concurrent: 25 / Connections: 150
Resp. T ms Req. Sec
ZF2 10 98
S2 15.4 64