范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

有效提高ThinkPHP的应用性能的几点建议

  架构优化
  架构优化涉及到技术、存储、网络、服务的选型和构架,尽量使用成熟和现代的开发架构和设计模式。前后端完全分离设计,便于前后端的独立优化,也更加便于测试工作。
  如果你的应用遇到了性能瓶颈,这个时候要考虑的就是优化架构而不是优化代码本身,因为架构层面的优化效果往往是最显著的。
  架构的优化需要根据自身运营情况来调整,切忌不可按图索骥提前优化,反而容易得不偿失,导致技术成本提高甚至"负优化"  关闭调试模式
  部署环境千万不要忘记关闭调试模式,这不仅仅是出于性能考虑,更多是基于安全因素。事实上,建议通过环境变量来配置关闭调试模式,这样部署后不需要更改任何配置文件。
  因为调试模式影响日志记录信息、额外的调试信息和缓存失效,关闭调试模式能够带来一定的性能提升 使用单模块
  使用多模块功能会增加文件的 I/O  开销和额外的配置及检查,如非必要在规划你的应用架构的时候尽量考虑使用单一模块,然后使用控制器分级来解决控制器过多的问题。
  使用单一模块的性能优势,在部署到 swoole  的时候可以得到更加充分的体现,因为应用文件一旦启动服务,就会载入内存,而模块的相关文件则会每次请求重新加载。 路由设计及优化
  在定义路由规则的时候,不要使用数组方式,尽量使用方法注册路由,并且多使用路由分组(或者资源路由)。分组路由可以减少路由的匹配次数,从而提升路由性能。如果你有多个域名的不同路由,也要按域名规划使用路由。
  尽可能设计在路由中进行当前路由的数据验证和权限检查等操作,一方面比较清晰,另外一方面可以尽量把验证操作提前,而不必等到控制器执行。
  在分组比较多的情况下,开启路由的延迟解析。 // 开启路由延迟解析 "url_lazy_route"    => true,
  如果同一个分组下面有比较多的路由规则,建议合并路由规则 // 合并分组路由规则 "route_rule_merge"       => true,
  对于 GET  请求的路由,可以设置路由的请求缓存。 // 定义GET请求路由规则 并设置3600秒的缓存 Route::get("new/:id","News/read")->cache(3600);
  部署阶段,可以开启路由缓存。 // 开启路由缓存(仅部署模式有效) "route_check_cache"	=>	true,查询优化
  首先保持良好的开发习惯,了解 Db类和模型的正确使用姿势,数据库本身的性能优化可以参考 MySQL性能优化的最佳21条经验,下面主要是对框架中数据查询相关的优化策略。 合理使用查询缓存
  尽量减少每次请求的查询次数,并对实时性要求不高的数据查询合理规划数据查询缓存(优先考虑使用 Redis  缓存) Blog::where("id", 10)     ->cache(30)     ->find();
  如果使用了关联查询, cache  方法只能用于主模型的数据缓存,但你可以使用 Cache  类的 remember  方法进行方便的数据缓存。 $users = Cache::remember("users", function(){     return User::with("profile")         ->where("status", 1)         ->select(); },30);不要过于纠结查询次数
  尽量减少查询次数是出于性能考虑,但不是必须,使用最少的查询不代表性能就一定是最高。一个复杂的 JOIN  查询性能不见得有两次简单的查询高,而使用简单的查询反而更清晰易懂,并且更方便进行数据查询缓存。 正确使用模型关联
  不要总是以为模型的性能一定比 Db  类低,框架的ORM查询设计经过了较为合理的优化,正确使用模型一样可以有出色的性能,而且比 Db  查询要方便很多。
  尤其是对于一些复杂的设计来说使用模型关联显得比直接用Db更加简单,例如使用关联预载入查询就可以避免 N+1  查询问题。 User::with(["profile","book"])->select();
  如果用 Db  类自己实现的话,费时费力,性能还不一定优。 大量数据处理优化User::chunk(100, function($users) {     foreach ($users as $user) {         // 处理数据     } });
  对于内存开销比较大的应用,在做大量数据查询和处理的时候,使用 cursor  方法,可以利用PHP的生成器特性,减少内存占用。 $cursor = User::cursor(); foreach($cursor as $user){     // 处理数据 }
  你会发现用户数据不论是1万还是10万级别,内存开销并没有大的变化。
  涉及到对大量数据的处理,包括数据迁移、批量更新,尽量使用命令行指令运行,否则会因为超时而中断  善用数据集方法避免多次查询
  可以通过数据集的方法完成的子集或者排序操作不要再次查询,例如: // 模型查询返回数据集对象 $users = User::select(); // 按照用户的成绩由高到低排序 $list1 = $users->order("score", "desc"); // 筛选成绩在90分以上的用户 $list2 = $users->where("score", ">=", 90);字段缓存
  利用下面指令在部署后生成字段缓存,可以减少每次数据表的字段查询开销。 php think optimize:schema
  注意:一旦数据库的表结构发生变化,必须重新生成。  配置和公共文件缓存
  每次在应用初始化或者模块初始化的时候会有一定的 I/O  开销,如果已经开启 OpCache  的话对性能影响甚微,如果比较在意的也可以通过命令行指令生成配置缓存(包括相关的公共文件和各种定义文件)。
  生成应用配置缓存: php think optimize:config
  生成模块配置缓存: php think optimize:config index
  注意:一旦配置或者公共文件发生变化,必须重新生成。  生成类库映射
  类库映射可以提升类库的自动加载性能,使用下面的指令可以生成系统类库和应用类库的类库映射(包括 extend  目录下的类库)。 php think optimize:autoload
  vendor  目录下的类库可以使用 composer  的 dump-autoload  指令优化加载性能。 composer dump-autoload -o
  该命令把  PSR-0   和  PSR-4   转换为一个类映射表,来提高类的加载速度。

所谓100算力榨取会对显卡价格有影响?我们给大家算了一笔账今天,名为TREX的挖矿软件发布了一个新的版本,表示可以实现ETHERGRVNCFX的合并双挖,按照开发人员提供的信息其算力表现如下ETHERGO需要有8GB显存。ETHRVN在W不到一万,AOC廉价版miniLED显示器开卖miniLED显示器是这两年火速窜起的显示技术,它的原理和LCD非常类似,但是发光元件采用了非常小的LED发光元件,其实际的显示效果与OLED相比不遑多让,当然其最主要缺点和OLE请随便玩,IntelArc独立显卡不会引入锁矿机制Intel副总裁RajaKoduri和图形产品团队成员RogerChandler日前在接受了Gadgets360的专访,在这篇专访中主要谈论的是明年上市的IntelArc独立显卡。超800GBs,SK海力士成功开发24GB6。4GTsHBM3内存根据韩国SK海力士的官方网站最新消息,该公司宣布开发出了业界最强的HBM3内存。新开发成功的内存型号为6。4GTs24GB的HBM3内存,该内存主要应用场合为GPUCPUFPGA以直播间不做低价了,你还会买买买吗?中国国际电子商务中心研究院最新数据显示,我国网络直播用户规模达6。17亿,其中电商直播用户达3。88亿。短视频直播正以肉眼可见的速度飞快增长。处在风口上的淘宝抖音快手等短视频平台,行车节油小技巧1。在驾驶过程中应避免激烈驾驶操作习惯,踩板油加速方式仅省了少时间,还会幅度增加油耗。在路行驶时,最好要频繁超车匀速行驶才能降低燃油油耗。把握好与前车车距,尽量减少必要刹车2。减少10万以内纯电车怎么选?四好新秀元Pro值得一看如果你全部的购车预算在8万元左右,想要一辆在这个价位各方面都均衡的家用纯电SUV,有什么比较好的推荐?老实说,有这样需求的大有人在,但纵观这个市场,车厂给你的选择却少之又少,你不得终于把显示器挂灯的价格打到百元内,米家显示器挂灯正式发布6月3日上午10点,小米商城APP的众筹板块上线了一款米家显示器挂灯,众筹价169元,日常价199元。这是小米第一款显示器挂灯产品,可适配于带鱼屏曲面屏iMac等显示器,瞄准了日常不谈逼格只聊性能!说说影响显卡性能的到底是什么前言在当下吃鸡游戏火热依然不减下,大家似乎都知道什么级别的显卡能吃到什么画质下的鸡,却基本都无视了显卡显存这一参数点。草鸡给大家简单的科普一下,玩游戏时,显卡的显存起到什么作用,是教你开启AMD显卡的隐藏属性,开始丝般顺滑的看片体验!前言实验验证传说!哈喽大家好,我是二狗!这一期我们没有实验验证,从首投稿以来,关于A卡相关视频也就交火那一篇,可以说是凉了不少A粉,因此今天给大家带来的是,A卡福利,看片黑科技,3没有文天祥的世界过零丁洋文天祥辛苦遭逢起一经,干戈寥落四周星。山河破碎风飘絮,身世浮沉雨打萍。惶恐滩头说惶恐,零丁洋里叹零丁。人生自古谁无死?留取丹心照汗青。说起文天祥,只要稍微读了点书的人,几乎
华为nova8旗舰即将来袭,芯片或成最大关注亮点经常关注手机的朋友知道,华为的新款旗舰手机华为Mate40系列手机将在本月与您见面,并且这款手机在问世之前就已经非常受欢迎,但是您知道吗?就在最近,除了华为Mate40系列手机之外盘点搭载骁龙865芯片的机型,价格ampampquot越级ampampquot式下降iQOONeo3IQOONeo38g128g版本降至2698元,虽然它的前面还有RedmiK30S至尊版,但它不好买啊,而且需要抢购且没有现货,,第三方也还是在溢价的状态,所以综合首发天玑700芯片!OPPOA55全面开售,定价很惊喜对于正在等待一款实惠5G手机的用户来说,最近OPPO上架的新产品很可能会成为心头好首发天玑700芯片的OPPOA55,这两天在各大电商平台开启了销售通道,定价1599元,更低价格拿华为P50概念机确认,麒麟芯片鸿蒙系统,这才是真旗舰最近,随着华为Mate2X会议如期举行,华为的下一个旗舰产品终于爆料了。据悉,华为的下一个高端旗舰将是华为P50。目前,该手机已经具有概念机设计的视频。从手机的外观设计来看,新款华内饰惊艳,轴距加长配置提升,全新奔驰GLA了解一下奔驰家族中最早国产的SUV车型是GLA,今年也到了GLA产品换代的时间。日前,奔驰就发布了全新一代GLA的官图,外观依旧紧凑时尚,尺寸似乎有所增长,内饰用上了奔驰家族式最新的设计,又一家英伦车企联手中资企业?近段时间,外媒报道称,吉利汽车和宁德时代均有意入股英国超豪华品牌阿斯顿马丁,并展开了相关接触。目前尚未有消息确认入股事件。吉利近年通过海外投资,收购了英国老牌汽车制造商路特斯(莲花国产A7要2022年上市?等不及的可先看这款,同样大溜背设计如果看腻了满大街的A4,又不喜欢拉长的车身线条,那么这款奥迪一定能吸引到你。奥迪A5以全进口的身份进入国内市场,有两门和四门版。虽然是进口车,但价格方面并没有太高的定位,目前A5处3款大空间67座MPV推荐,比SUV更实用近年,国内消费者对MPV需求日渐提高,多座位的设定对于人员较多的家庭,外出时能满足全家成员乘坐需求,都坐在一辆车愉快出行更合适,而且长期计算,出行费用也会比开多辆车要划算。7座车型2020年最重磅的3款新车,闭着眼买都没错新的一年,小伙伴们是否有了买车的计划,今年即将上市的几款车都是人气小生,还未上市先火一把。下面可以看着内容,盘算一下哪款是自己的菜。丰田汉兰达预计上市时间2020年下半年丰田品牌的英媒评出Top10中型轿车,日系无一入选,第一名仍是它英国著名汽车媒体AUTOCAR日前评选了2020年中型轿车Top10榜单。在榜单内我们看到了不少熟悉的车型,在国内销售中,最意外的是,居然没有日系的影子,看来英国媒体的评选标准会更拒绝屌丝称号!DS能否在国内复活就看这款豪华中型轿车DS汽车品牌刚在国内推出的时候,定位为豪华品牌,是一个能与雷克萨斯凯迪拉克沃尔沃同级的第二梯队豪华品牌,如今雷克萨斯销量逐年猛增,沃尔沃在国内的曝光率认可度也增长迅速,唯独DS近两