当前位置 : 主页 > 网络安全 > 测试自动化 >

请解释一下Symfony2与ZendFramework 2的性能结果

来源:互联网 收集:自由互联 发布时间:2021-06-22
我们使用Doctrine2对Docmine2和ZendFramework2对Symfony2进行基准测试. 对于基线Vs,测试包括裸ZF2和SF2 Hello World.同样但是Doctrine2加载了一个简单的对象.我们使用ab并仅测量每秒请求和每个请求的时
我们使用Doctrine2对Docmine2和ZendFramework2对Symfony2进行基准测试.

对于基线Vs,测试包括裸ZF2和SF2 Hello World.同样但是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
默认情况下,DoctrineORMModule集成没有任何缓存活动.

您必须在配置中为映射设置缓存:

'doctrine' => [
    'driver' => [
        'orm_default' => [
            'class' => 'Doctrine\ORM\Mapping\Driver\DriverChain',
            'drivers' => [],
            'cache' => 'apc',
        ],
    ],
],

默认缓存为array.否则,每次请求都会解析注释和任何其他类型的映射.

由于我也是ZF2-Doctrine2集成的维护者,我可能也有兴趣了解有关此主题的更多信息.你有一个测试环境要展示吗?

网友评论