We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一、网络问题
1、临时性 检查:ping, mtr 等命令,检查网络状况,DNS等 解决:联系机房或视具体情况而定 2、网络不同或距离太远 检查:客户端和机房所在网络情况 解决:双线机房或分布式部署,动态DNS,需要考虑成本 3、资源加载慢 检查:chrome控制台 解决:CDN,合并请求,压缩页面代码等
二、前端问题
1、浏览器太烂 2、页面设计不佳 检查:浏览器解析时间,是否DOM节点过多,JS有问题等 解决:优化页面代码
三、服务端问题
1、服务器状态 检查:负载,CPU, 网络,内存,磁盘空间等使用情况 如果单台服务器性能受限,考虑调整为分布式架构,如nginx转发,DB分库分表等 2、PHP响应慢 检查webserver日志中的响应时间 如果服务器整体负载不高,但PHP的数据返回时间过长,在PHP代码中分段输出处理时间 更具环境的不同,可以选择直接输出或是写入日志 如果是高访问量的在线调试,一般选取一定比例记录日志,防止日志过多带来的额外系统开销 逐步缩小范围,定位、优化 3、DB响应慢 有分为读取慢和写入慢 读取慢 检查:慢查询日志; show processlist 查看当前DB状态,看哪些请求停留较多 top查看mysql进程的开销 代码中记录SQL和执行时间 解决: 手动执行可疑SQL(注意排除query cache的影响),用explain,profile等工具分析SQL性能 再考虑是否优化索引,或者分库分表,或者增加缓存 写入慢 检查:除读取慢的检查方法外,还有 iostat 检查磁盘IO 查看mysql binlog的写入速率 解决:增加缓存,分库分表,优化索引,从业务逻辑上考虑减少DB操作,合并写入 4、其他 被攻击,webserver进程数受限,甚至内网流量过高等原因,都有可能导致访问缓慢,具体情况具体分析
-- XiangZ
答: 日志记录本身是要消耗资源的,debug的信息非常多,所以不能开,当然性能允许也可以开。我说的两块日志是公共日志,就是不需要业务模块显式写日志的,实际写还是一个入口的。SQL出错的原因有很多,比如违反唯一性约束,这种情况下还是可控的,称为错误(error)合适一些,而异常则会引起程序流程终止执行,属于更高级别的错误(fault)。
答: 写日志不需要通过errorno区分,在入口try-catch捕获异常就可以了。 -- 水浸街
附加: 问:命名空间的好处是什么呢? — 李博 答:依赖管理和自动加载在下划线时代就有了 只是没现在这么成熟。 命名空间能做的,下划线基本都能做。 要说好处 我看到的是开源大佬不再顾忌长类名的问题,通过命名空间设计出更优秀合理的架构 symfony doctrine 都是用了命名空间后 类名变长 分层变细的例子 —twin
问:我们还在使用5.2.*这种版本的php。没有跟得很近。大家是否遇到什么强需求,会迫使或说主动使用更高版本的php? — 李博 答:一般也可以不升级,唯一担心就是将来很多开源代码都支持很多新特性,你老版本不能用,就会郁闷哦 — 黑夜路人 答:5.2太老了,PHP优秀的开源类库,大多用上了命名空间,要求最低5.3.3 — twin
The text was updated successfully, but these errors were encountered:
No branches or pull requests
register_shutdown_function(function(){
var_dump(error_get_last());
}); //加在头部 无需修改任何配置 对程序无害 绿色 -- 吴子棋
答: 恩 -- 老
一、网络问题
二、前端问题
三、服务端问题
-- XiangZ
答: 日志记录本身是要消耗资源的,debug的信息非常多,所以不能开,当然性能允许也可以开。我说的两块日志是公共日志,就是不需要业务模块显式写日志的,实际写还是一个入口的。SQL出错的原因有很多,比如违反唯一性约束,这种情况下还是可控的,称为错误(error)合适一些,而异常则会引起程序流程终止执行,属于更高级别的错误(fault)。
答: 写日志不需要通过errorno区分,在入口try-catch捕获异常就可以了。 -- 水浸街
附加:
问:命名空间的好处是什么呢? — 李博
答:依赖管理和自动加载在下划线时代就有了 只是没现在这么成熟。 命名空间能做的,下划线基本都能做。
要说好处 我看到的是开源大佬不再顾忌长类名的问题,通过命名空间设计出更优秀合理的架构
symfony doctrine 都是用了命名空间后 类名变长 分层变细的例子 —twin
问:我们还在使用5.2.*这种版本的php。没有跟得很近。大家是否遇到什么强需求,会迫使或说主动使用更高版本的php? — 李博
答:一般也可以不升级,唯一担心就是将来很多开源代码都支持很多新特性,你老版本不能用,就会郁闷哦 — 黑夜路人
答:5.2太老了,PHP优秀的开源类库,大多用上了命名空间,要求最低5.3.3 — twin
The text was updated successfully, but these errors were encountered: