CakePHP vs CodeIgniter: BenchMarking(2)

通过对CI和CakePHP在同一服务器环境下进行性能基准测试,发现CI在处理能力上优于CakePHP,尤其是在启用缓存的情况下。然而,CakePHP在编程便捷性和数据库查询等方面提供了更多便利。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cake和CI在架构/设计和代码结构上是最为相似的两个框架。不过很显然它们对于公共类加载的策略上完全不同。

BenchMarking(1)里面已经给出了CakePHP读取简单数据并显示的性能基线测试数据。可以看到性能表现不佳,具体原因还需要再进一步探查源码。

下面对CI,在同一台服务器上运行,从同一个数据库同一张表格中读取相同数据,做了相同的测试。


CI版本:2.0.3


测试命令

[test@test siege-2.70]$siege -b -c5 -r100 http://localhost:5800/


测试代码


class Deals extends CI_Controller {

public function index()
{
//$this->output->cache(10);
$this->load->database();
$this->load->model('Deal');
$data['query'] = $this->Deal->get_deals(); //get 10 records
$this->load->view('deals',$data);
}
}

红色部分是开启还是禁用cache。上面是禁用了cache。


测试结果

在禁用cache的情况下,CI的处理能力达到了40 trans/sec

在开启cache的情况下(即把红色代码uncomment掉),CI的处理能力达到了80trans/sec


可见在性能是首要衡量因素,而开发效率其次的情况下,CI这种最小化内核,按需加载的框架是更好的选择。

Cake这种基于假定预先加载的策略,在很多情况上有overhead,系统会在意识不到的情况下牺牲了性能。

尽管性能上存在较大差距,不过Cake相比CI有如下优点

*)AutoMagic简化了编程

*)Model的关联查询大大简化了数据查询

*)更OO,设计上更加精致

*)有更成熟的测试方案

*)内置Auth和ACL

*)更好的ORM

*)更完备的Cache

这使得Cake在开发效率上要胜出CI。

打个比喻,可能会更好的了解两者设计思路上的差异,CI好比鱼肠,Cake则好比巨阙。

两个框架都是学习的好对象,也都可以构造大规模/海量用户应用,如Cake曾被Mozzila用于开发addons。

究竟选择哪个框架取决于具体的应用场景和开发团队技术背景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值