0

0

数字说话,震惊:TP框架,php,html,php静态页执行效率分析和对比

php中文网

php中文网

发布时间:2016-06-23 13:47:49

|

1261人浏览过

|

来源于php中文网

原创


                近日打算做一高性能聊天服务器,不知道Thinkphp3.2效率如何?也就是框架效率到底如何?于是测试下。
任务:从数据库读取44条数据。
1、Tp3.2 home->controler->IndexControler->index()
$m=M('login_log');
        $login_log_list=$m->select();
        $this->assign('login_log_list',$login_log_list);
        $this->display('index');
    模板:index.html:用标签  显示。

2、test2.php(核心代码:)
       $result=mysql_query('select * from login_log');
       while ($item=mysql_fetch_assoc($result))
3、test2.html:就是test2.php的输出结果。
4、test1.php:就是test2.html的后缀变为php,其它什么都不变。

采用工具:ab.exe 执行1000个连接,100并发。电脑:华硕笔记本cpu:u3400 6G内存。Win7。程序全部在本地执行。
结果如下:

结果:http://chenrenqi.blog.sohu.com/303865454.html
图表这儿不支持,请见上面连接。

由此可见:原生PHP连接数据库,是TP3.2的11倍。时间主要耗费在文件加载和类的建立,及模板解析上了。
而静态文件是php连接数据库文件的21倍左右。是改后缀后的php的4倍左右。
要知道,实际工作中,一个php文件。也就是一个http连接,可能需要多个数据库连接,实际HTML的速度可能要比php快30倍以上,是非常正常的。


回复讨论(解决方案)

90%的企业站点,内部OA,并发访问量不大。所以用TP还是不错的。如果对性能要求有很大。可以采用其它的。

又在炒现饭了?
总所周知,框架带来的是开发上的高效率。就是框架的作者也从不讳言运行效率较低
php 后缀必然要启动一个php解析器的进(线)程,任何代码的执行都是要花费时间的
把 html 后缀改成 php 后缀也是如此,只有在php解析器分析完整个文档并确认没有任何php语法成分后才会原样输出

C 语言编译后的机器指令要比汇编语言的多出30%。但即便是在当时资源昂贵的情况下,程序员们还是选择了 C 语言。
这是为什么呢?原因就在于 C 语言就像他的名字一样简单明了

高性能聊天服务器。。。。你这个数据不能说明任何问题。

觉得TP不好可以选择C或者JAVA,就像你会英语,我非得让你说法语,你会吗?

追求?行效率的,可以用C?成php?展?用。或者你的框架就是C?的一?php?展。

回过你那个帖子··就说了··框架的东西 要实例化一大堆无用的东西,而只是实现一个很小的功能,MVC的框架·每次刷新页面都要去从头到尾实例化一遍,所以···追求高性能···传统的过程写法也许更爽快···至于开发效率和维护问题··就是楼主要考虑的了··

又在炒现饭了?
总所周知,框架带来的是开发上的高效率。就是框架的作者也从不讳言运行效率较低
php 后缀必然要启动一个php解析器的进(线)程,任何代码的执行都是要花费时间的
把 html 后缀改成 php 后缀也是如此,只有在php解析器分析完整个文档并确认没有任何php语法成分后才会原样输出

C 语言编译后的机器指令要比汇编语言的多出30%。但即便是在当时资源昂贵的情况下,程序员们还是选择了 C 语言。
这是为什么呢?原因就在于 C 语言就像他的名字一样简单明了



你懂不表达大家都懂。懂性能之后,潜意思就知道如何编程来优化了。

觉得TP不好可以选择C或者JAVA,就像你会英语,我非得让你说法语,你会吗?


慢不一定不好。逻辑有问题。就好像我说某人长得漂亮,不代表他很有能力。

感谢分享,不过,这只要稍微有点常识的PHP开发者都懂,更不要说要开发高性能应用的人了。

我觉得这种测试并不公平啊,为框架布置好一套成熟的缓存机制呢?
而且TP的时间都花在哪里了?磁盘IO?实例化对象写内存?模板渲染正则匹配?
这些都可以通过缓存搞定的啊

哈哈,楼主发我觉得就是分享精神,喷子死!支持楼主

这应该是框架的一个通病吧。

           99%人觉得性能瓶颈在数据库,测试结果显示,性能瓶颈在数据库,是的,但我们很难改变。我们可以改变的部分千万不要忽视,除了数据库外,其它部分程序瓶颈也会存在。而且相差极大!

          还有一点就是,既然知道框架性能极差,为什么不改观呢?

          本人现在新做一款框架,目标:极简单,极强大,极快速,极傻瓜。
          打算将大家都忽视的前端
         
           让我们享受极快速开发的同时,也能享受极速度。
           初步目标:是原生php的一半的速度(不知道是否能做到,这是目标)。

我觉得这种测试并不公平啊,为框架布置好一套成熟的缓存机制呢?
而且TP的时间都花在哪里了?磁盘IO?实例化对象写内存?模板渲染正则匹配?
这些都可以通过缓存搞定的啊


你幸福啥,兄弟!^_^
一套成熟的缓存机制呢??都是多次测试,没有见缓存有多大效果。


我觉得这种测试并不公平啊,为框架布置好一套成熟的缓存机制呢?
而且TP的时间都花在哪里了?磁盘IO?实例化对象写内存?模板渲染正则匹配?
这些都可以通过缓存搞定的啊



我也原以为缓存有多大作用,测试结果发现,缓存没有多大效果。

立即学习PHP免费学习笔记(深入)”;

缓存只有在高并发才会显出优势。
平常小网站,不需要做什么缓存。

同样逻辑下,原生码的速度要比框架快得多。这是因为框架要加载太多东西。

比如一个简单页面,原生码直接解析输出,只需要一次请求。但框架往往把这个页面分成十几个小部分,光请求就要多出十几倍。

一个真正的程序员,都应该写原生。

之所以会有框架,是因为框架能大幅推进开发速度。快速建成项目。

不过我看也未必如此,有些网站,和框架逻辑不一致的,用原生更快。

比如TP,为论坛而生,如果我想做个门户页,需要完成类似新浪的首页效果。

这时候,用TP可以累死你。

那我就是那 1% 了
须知:数据库并不特指基于文件系统的SQL(即便是SQL,也有基于内存的表),还有基于内存的noSQL

框架本身并没有什么不好,框架是开发经验的总结。
但为框架而框架就不好了

传统的多入口架构,路由的指派是由 web 服务器完成的
而一些框架为了所谓的单入口效果,硬将本该 web 服务器完成的工作拿来自己去做。


这段话,怎么就有非法词组了呢

这个测试没有任何意义。。。。

感觉PHP越来越像个四不像了,效率甚至还不及Python

追求?行效率的,可以用C?成php?展?用。或者你的框架就是C?的一?php?展。


暂时还没有这样做,也许以后会这样做。

editGPT
editGPT

一款浏览器插件,让ChatGPT修改、校对英语文章

下载

这个表情看着看着自己也幸福了

我属于那1%...性能瓶颈多半在MVC超多文件部署的磁盘IO上,高并发下很难受,想办法开启opcode缓存就解决了,这个测试结果也会有很大变化吧
我很感兴趣16楼说的10几个请求的单页面到底属于哪个框架...
另外框架只是提供开发模式和一些常用功能封装,做论坛还是做新浪 这些业务逻辑有什么区别吗?或许我没做过真的不理解,希望大侠们有时间可以科普下

原生php必然比框架快,但我们可以通过优化手段极大的减小这个差距
如果零点几秒的页面速度差距也比开发模式重要,大家都用汇编搞web吧~

虽然小弟经验少,但也想反驳下xu大,缓存并非不自信,而是将高频率的重复工作消耗降到最低
一篇简单的新闻,写操作一辈子可能只有一次,但读操作每分钟都在进行,不需要每次让服务器软件运行脚本,再找数据库要东西,直接静态文件速度快很多,好像静态文件照样可以优化,原本硬盘??内存??网卡缓冲区的中间步骤也可以省略
一些筛选条件复杂的推荐新闻,更没必要每次都让数据库计算的吧
当然过分的缓存肯定是画蛇添足


其实我是来转图的,高并发的东西,可以考虑换换其它语言。效率也是需要重视,但为效率而去喷就没必要了。

是的,TP适合做论坛社区,资讯一些小型网站,不适合做大型网站,也从不奢望TP去做大项目

有时间还可以在测试下yii的效率如何

你就是那个闲着没事做的那种!框架就是为了快速开发而生。

为了快速开发而生,不代表速度快。这些基础的研究不搞清楚,你再忙,也瞎忙。
我最近在研发一个高速框架。肯定比你忙。

你就是那个闲着没事做的那种!框架就是为了快速开发而生。

我晕,在我看来框架除了提升开发效率;其余对开发者没有任何好处;
用了一年框架连最基本的sql估计都不会写;
更别提框架中的各种初始化,各种new了;

我晕,在我看来框架除了提升开发效率;其余对开发者没有任何好处;
用了一年框架连最基本的sql估计都不会写;
更别提框架中的各种初始化,各种new了;


原本你会就会,原本不会你就不会。

有时间还可以在测试下yii的效率如何


本打算用YII也测试下的,但前天学习了下,感觉YII作者水平实在太菜。就没有必要测试了。
原本以为YII是高大上,了解后,才知道是?丝中的菜鸟。

一个真正的程序员,都应该写原生。

之所以会有框架,是因为框架能大幅推进开发速度。快速建成项目。

不过我看也未必如此,有些网站,和框架逻辑不一致的,用原生更快。

比如TP,为论坛而生,如果我想做个门户页,需要完成类似新浪的首页效果。

这时候,用TP可以累死你。


水平还极菜,在1年以内吧。多编程吧。会有进步的。

真是相当的震惊,一个10+年web开发经验的人对于缓存的理解竟然是这样的。
看来这几个帖子纯粹就是浪费我的时间,不在回复楼主。

真是相当的震惊,一个10+年web开发经验的人对于缓存的理解竟然是这样的。
看来这几个帖子纯粹就是浪费我的时间,不在回复楼主。


对了,哪里看到有10+web经验的人了?我最多3年而已。

框架也用过的,但是有的地方用的就是不方便,
例如:多条件查询之后分页怎么继续获得搜索条件,TP 就这里就很麻烦,获取多个数据得循环好几次,还不一定能获取到!

聊天室的话node.js可以考虑一下

请使用汇编,如果效率还不达标,可以使用二进制,如果还是慢,我也没办法了

头一次听到人说YII很烂,TP很高大上的说法。。我也只能呵呵了  别出来装逼了好吗??

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

616

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

194

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

91

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

54

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

598

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

56

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Pandas 教程
Pandas 教程

共15课时 | 1.1万人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.4万人学习

Swoft2.x速学之http api篇课程
Swoft2.x速学之http api篇课程

共16课时 | 1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号