搜索
首页后端开发php教程一个流量并发很高的项目,优化是从什么时候开始的?

当前页面遇到问题就立刻优化吗还是等到(模块/项目)接近完成了才开始优化?
一直get不到点

回复内容:

当前页面遇到问题就立刻优化吗还是等到(模块/项目)接近完成了才开始优化?
一直get不到点

一开始架构肯定要搭建好啊,不然后面只能对硬件设施进行优化,

回答问题麻烦看清楚问题

首先当然是编码人员自身的意识-编写高质量的代码

在不影响进度的条件下可以优化代码逻辑。

然后先保证开发完成,跑起来再分析哪些是瓶颈,进行优化。

因为可能你现在绞尽脑汁优化的点占整体瓶颈的1%,优化从重点着手效率才最高。

最后,每一阶段的优化重点可能不一样,也要更具需求来分析解决瓶颈。因为你现在优化的点,可能在这一阶段根本用不到。

站在数据库角度来说:

一开始就知道是并发很大,那就需要从设计表结构开始,避开一些并发带来的设计,比如拆分一部分不常用字段到另外的表等,大架构基本方向对就可以。

至于其他的,就需要看具体需求,现在的设计基本是先完成功能,后优化!

我举个简单的例子,你过年回家,开始是想骑自行车回家,然后一直在思考用什么样的自行车,怎么骑才能快的。。。可是大家回家都是坐飞机回去的,所以,要看你优化的有没有意义,最后你都不采用现有方案,优化再好也没用。。。框架的时候就应该想好优化的问题。。。一点个人见解。。

题主的问题是当前页面遇到问题就立刻优化吗还是等到(模块/项目)接近完成了才开始优化?
我的答案是:遇到问题,解决问题

从重构开始。

你的问题其实算不上一个问题,就是想问马上改还是稍后再改,对吗?应对问题你肯定要有个方案,然后评估优先级,然后实施就是了,从这个角度来说没有任何问题是发现后马上改的。但是怎么评估优先级就要看具体情况了。
简单说:
高并发仅在特定应用上发生,影响范围被限制在某个模块内,不是核心功能,且不对其它功能产生直接影响,这个最后处理也没问题。
高并发仅在特定应用上发生,影响范围被限制在某个模块内,但是是核心功能,也对其它功能产生直接影响,方便的时候解决就行了。
高并发在2个或以上应用上发生,影响不限于某个模块内,尽快安排解决。
这也就是一般的情况,实际开发的时候你还要综合考虑外部压力之类的问题(比如客户死活让你下周上线)。

优化应从设计逻辑开始.
业务逻辑思路清晰就最好了,尤其是开始时候就和程序员从高并发角度做准备,整体可以给业务带来比较小的压力,或者功能比较好拆分,都能在项目开始阶段把问题解决掉.
当然这是最理想状态,通常做不到.
那么就要根据已有业务逻辑,尽可能将业务规划为容易拆分的模块,理想状况是,将来哪里成为瓶颈,哪里直接加台机器装上对应逻辑就解决.
这也是理想状态,没人先知先觉,但有经验的架构师可以预先处理掉大部分问题.
接着就是根据实际情况解决问题,这个就要看,实际业务上,究竟哪里是瓶颈.
一般说来,出问题的就几种情况:
1.程序员写的东西本身不过关,我见过有人在业务里递归查数据库的,还不限制层数,在本地跑的好好的,一上线,cpu爆表直接挂掉.
2.访问过多,这也可能是静态文件太多引起的,或者带宽被占满了.那么就需要考虑CDN或者把一些固定文件资源分配到专门服务器上面去.
3.数据库顶不住了.这个也非常常见,一般就是单表数据量太大引起的. 或者还不算大但查询很慢这类问题一般是索引不足或者过度索引造成的.处理完还要看看是否可以优化数据库配置,运维有时候只负责数据库跑起来,其余优化配置全不管.接着还不行就考虑加缓存,增加一层或者干脆换成 Nosql数据库,但这个就需要看具体业务逻辑才可以.

我遇到的问题,一般在这几个层面都可以解决的掉了.所以更高深的还在学习中.
抛开具体业务逻辑也只能说些比较空泛的了,所有抛开业务逻辑的优化,并发都是伪命题.

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用数据库存储会话的优点是什么?使用数据库存储会话的优点是什么?Apr 24, 2025 am 12:16 AM

使用数据库存储会话的主要优势包括持久性、可扩展性和安全性。1.持久性:即使服务器重启,会话数据也能保持不变。2.可扩展性:适用于分布式系统,确保会话数据在多服务器间同步。3.安全性:数据库提供加密存储,保护敏感信息。

您如何在PHP中实现自定义会话处理?您如何在PHP中实现自定义会话处理?Apr 24, 2025 am 12:16 AM

在PHP中实现自定义会话处理可以通过实现SessionHandlerInterface接口来完成。具体步骤包括:1)创建实现SessionHandlerInterface的类,如CustomSessionHandler;2)重写接口中的方法(如open,close,read,write,destroy,gc)来定义会话数据的生命周期和存储方式;3)在PHP脚本中注册自定义会话处理器并启动会话。这样可以将数据存储在MySQL、Redis等介质中,提升性能、安全性和可扩展性。

什么是会话ID?什么是会话ID?Apr 24, 2025 am 12:13 AM

SessionID是网络应用程序中用来跟踪用户会话状态的机制。1.它是一个随机生成的字符串,用于在用户与服务器之间的多次交互中保持用户的身份信息。2.服务器生成并通过cookie或URL参数发送给客户端,帮助在用户的多次请求中识别和关联这些请求。3.生成通常使用随机算法保证唯一性和不可预测性。4.在实际开发中,可以使用内存数据库如Redis来存储session数据,提升性能和安全性。

您如何在无状态环境(例如API)中处理会议?您如何在无状态环境(例如API)中处理会议?Apr 24, 2025 am 12:12 AM

在无状态环境如API中管理会话可以通过使用JWT或cookies来实现。1.JWT适合无状态和可扩展性,但大数据时体积大。2.Cookies更传统且易实现,但需谨慎配置以确保安全性。

您如何防止与会议有关的跨站点脚本(XSS)攻击?您如何防止与会议有关的跨站点脚本(XSS)攻击?Apr 23, 2025 am 12:16 AM

要保护应用免受与会话相关的XSS攻击,需采取以下措施:1.设置HttpOnly和Secure标志保护会话cookie。2.对所有用户输入进行输出编码。3.实施内容安全策略(CSP)限制脚本来源。通过这些策略,可以有效防护会话相关的XSS攻击,确保用户数据安全。

您如何优化PHP会话性能?您如何优化PHP会话性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显着提升应用在高并发环境下的效率。

什么是session.gc_maxlifetime配置设置?什么是session.gc_maxlifetime配置设置?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceIsiseededeedeedeedeedeedeedto to to avoidperformance andununununununexpectedLogOgouts.3)

您如何在PHP中配置会话名?您如何在PHP中配置会话名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函数配置会话名称。具体步骤如下:1.使用session_name()函数设置会话名称,例如session_name("my_session")。2.在设置会话名称后,调用session_start()启动会话。配置会话名称可以避免多应用间的会话数据冲突,并增强安全性,但需注意会话名称的唯一性、安全性、长度和设置时机。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具