CakePHP vs CodeIgniter: BenchMarking(2)
来源:互联网 发布:知乎可以发帖子吗 编辑:程序博客网 时间:2024/06/17 01:38
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。
究竟选择哪个框架取决于具体的应用场景和开发团队技术背景。
- CakePHP vs CodeIgniter: BenchMarking(2)
- CakePHP vs CodeIgniter: BenchMarking(1)
- CodeIgniter类库之Benchmarking Class
- akelos vs cakephp
- 国外主流PHP框架比较 (CodeIgniter、CakePHP、ZendFramework、Symfony)
- php mvc框架-symfony/cakephp/codeIgniter/zend framwork
- CakePHP中文教程2
- cakephp 学习2
- CakePHP 编程笔记2
- cakephp菜鸟笔记2
- cakephp
- CakePHP
- cakephp
- cakephp
- CakePHP
- CakePHP
- CakePHP
- CakePHP
- ITAT教育工程就业技能大赛复赛试题A卷第一题
- 实例解析linux内核I2C体系结构
- python __call__ (可调用对象)
- gurb!gurb!!gurb!!!
- 按钮的背景图
- CakePHP vs CodeIgniter: BenchMarking(2)
- java解析XML和java解析HTML
- 一个for循环输出二维数组
- Sping集成JPA
- 好吧,又一种C++事件回调封装以及相关的零碎讨论
- 2011-10-19 java servlet开始-http协议。
- 通过同名字符串来调用函数<python>
- 异步消息的传递-回调机制
- windows下如何调用BIOS的函数