热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用ThinkPHP这样的框架开发门户网站,有什么缺点?

相比自己纯源开发来说,用thinkphp肯定开发速度会快些但对于长期运行,以后可能会有很大访问量的门户网站来说,用thinkphp框架会有什么缺点吗,比如执行速度,负载等方面
相比自己纯源开发来说,用thinkphp肯定开发速度会快些但对于长期运行,以后可能会有很大访问量的门户网站来说,用thinkphp框架会有什么缺点吗,比如执行速度,负载等方面

回复内容:

就php框架本身来说

国内使用情况
thinkphp可以说是国产最热框架,各大公司都在用,更别提个人了.
我知道的金山,腾讯,dnspod都在用,我也在用.
原则就是团队对什么技术掌握的最多,就用什么技术,换成框架来说就是团队对某个框架最熟悉,那么就用这个最熟悉的框架

框架对比
php的框架五花八门,重型的zf,symfony2,流行的ci,yii,Larave
高性能版的C语言写的php扩展.国外Phalcon,国内鸟哥的 Yaf,也是微博使用的
这里未列出的还有好多好多.还有很多高手自己维护自己的"框架"
这些个框架国内都有人使用. 至于选什么框架,完全看自己技术团队的技术实力,以及评比结果那个更适合自己.

用php的网站来说
性能再差的php框架可以用系统构架来做。高并发的网站不是一台机器来抗.
多机php负载均衡.
先抗住再优化.
好多公司都几十上百台了php才来做大规模的调优,对非常消耗cpu的地方来重点优化,和重构,或者其他语言重构. 当然优化也是从编码 到上线 监控日志. 优化是长期不断的过程.也不紧紧是一次大规模重构.
抽离静态资源. 会话session,可以放在redis memcache中去.
数据库读写分离. 读多机群集.
上redis 等NoSql把热数据堆这里来.
启用cdn系统加快静态文件分发. 小规模三方,大规模自建.

用thinkphp一样可以高并发,就是看你怎么做构架了.

以上简单一说.

总之就是
系统瓶颈不在语言或框架上,而是在构架上.
好的构架不就是堆机器么. 看人了。还是应该先开发出来。开发时获取数据这一块注意不要跟数据库强耦合,不要不加处理直接使用以数据库的字段为key的数组。因为以后有量时十有八九要分表、加缓存、换 NoSQL 等等。 TP是一个很好的框架,我们已经有很多这样的成功产品,等你的网站流量很大的时候就不是框架以前哦去解决的问题了 php的速度瓶颈绝对不是在执行上面,不然他也不会成为一种不用编译,而是每访问一次编译一次的语言,php优点就是执行特别快,这个和框架无关,我觉得php的速度瓶颈在数据库,如何更加高效的存储和读取,以及分类数据,是更重要的。所以数据库的设计要好好研究一下,当然,还有上面说的,各种缓存技术,无论是转静态也好,还是服务员缓存技术也好,都是不错的方法! 这一块看构架。有一些问题需要优化,例如本地写的的问题。

例如,超大访问量对于nosql的考虑,队列的考虑,分库分表的考虑。

这是程序方面。

构架方面自己需要分情况去看 如何tp不能再用了,说明 你们的钱也有了。 TP的响应速度相比其他的要慢很多,开发速度上,比其他的上手快很多,看自己的项目了。不过TP是开源的,有些东西可以自己把控。 如果单纯从业务来看,门户网站的业务逻辑足够简单,TP可以完全胜任。如果说关于这个性能啥的,我还真的不认为TP会成为性能的牺牲者。哪有门户网站不做缓存的,都缓存了,框架性能就不是第一要素了。
而且,基本上也不可能单纯用PHP来完成一个门户,还有更多,比如sync,C扩展、数据库同步等等。 会有很大负载的网站,前台根本就不能用tp,任何框架都不可以。 框架带来开发便捷的同时,会有性能损耗。 建议使用开源CMS,部分模块二开。完全用TP来做,周期长,易用性低。架构做得好,执行速度和负载没问题。
推荐阅读
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • 本文介绍了如何使用call_user_func_array函数向Redis中添加有序列表或集合。该函数可以接受一个数组作为参数,第一项是要操作的有序列表或集合的键,后续的项目是排序权重和值的交替。通过该函数,可以方便地向Redis中添加多个元素,并指定它们的排序权重。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • Redis的默认端口、数据库使用和多端口配置
    本文介绍了Redis的默认端口、数据库使用和多端口配置的方法。通过选择不同的数据库和使用flushdb命令可以实现对不同数据库的访问和清除数据。同时,本文还介绍了在同一台机器上启用多个Redis实例的方法,并讨论了配置认证密码的步骤和注意事项。 ... [详细]
  • 说到C语言的语句块,真是一堆血泪史。第一大坑就是优先级。刚工作那会儿,C的书没看几本,自信满满的认为C语言都会了,拿出搞ACM培养的豪情壮志,代码倒是写得爽,却到处留 ... [详细]
  • __call是找不到方法的时候会执行可以代替下面的saddsrem方法publicfunction__call($name,$arguments){if(count($argum ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
author-avatar
Edgar__一峰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有