EasySwoole中采用MySQL连接池并发测试
PHP

EasySwoole中采用MySQL连接池并发测试

xiaole阅读(306)

测试机  MacBook Pro (Retina, 15-inch, Mid 2014)  2.2 GHz Intel Core i7  16 GB 1600 MHz DDR3环境( brew 默认安装配置)  PHP: 7.2.20 (cli) (built: Jul 5 2019 12:51:26) ( NTS )  MySQL: Ver 14.14 Distrib 5.7.26, for ...

Tideways和xhgui打造PHP非侵入式监控平台
技术前沿 PHP

Tideways和xhgui打造PHP非侵入式监控平台

xiaole阅读(515)

当我们发现生产环境的某个接口执行时间特别长时应该怎么做?直接登录线上机器单步调试?打大量的log然后分析? 一般我们可以把分析流程拆分为如下几步操作:分析开发环境下执行是否会慢;如果是代码问题,在开发环境下就能检测出来;分析预发环境执行是否会慢;如果是数据库或者第三方扩展问题,在预发环境就能检查出来。从生产环境摘一台机器,分析代码执行慢的原因;如果是机器的问题,在生产环境就能检查出来。1,2,3步骤都需要去分析代码,看哪部分执行时间长。如果人工一句一句代码去排查,不但要耗费大量时间还会导致用户流...

PHP进程间通信探究
技术前沿 PHP

PHP进程间通信探究

xiaole阅读(734)

PHP作为解释器运行通过线程或者进程都能实现(如果使用Apache,那么就可能使用多线程模型。使用php-fpm,就是使用多进程模型,这里以多进程模型解释)。服务器每接收到一个请求就要起一个PHP进程,平均一个PHP进程消耗内存2M左右(默认最大为8M,参数可以设置)。独立的进程让PHP能专一的做自己的解释工作,程序员也从复杂的代码逻辑中走出来,不用担心资源的竞争和各种锁问题。独立进程虽好但这也导致想通过多进程或者异步来提速成本非常的高(主要是开发难度)。如果一定要通过PHP实现多进程和异步其实...

CodeIgniter性能优化
技术前沿 PHP

CodeIgniter性能优化

xiaole阅读(686)

-》index.php作用:加载了部分全局变量,文件路径等入口优化:干掉了整个web文件,调整了部分路径-》core/CodeIgniter.php作用:ci的核心文件,基本上加载了整个模块优化:进入内部优化-》加载common.php作用:框架特别基本的一些函数log,show,error,is_xxx等,800行左右代码优化:暂时未处理-》composer autoload func-》加载benchmark作用:benchmark性能追查工具,设置了全局的开始和结束时间优化:直接干掉,全局...

cli下获取参数
PHP

cli下获取参数

xiaole阅读(1283)

shell命令下把PHP当作脚本执行时如何给php传参,这里有几种解决方法供参考 argvtest.php内容如下 ...

PHP编写的mysql热备份及增量备份
PHP

PHP编写的mysql热备份及增量备份

xiaole阅读(761)

本文基于PHP和xtrabackup 具体的安装方式本文不再解释 本文的备份条件 每10分钟执行一次请自己crontab配置。每天凌晨时进行整量备份,其后每10分钟备份一次。可配合钉钉进行提醒 ...

PHP7中的异常与错误处理
PHP

PHP7中的异常与错误处理

xiaole阅读(683)

PHP 中的 Exception, Error, Throwable PHP 中将代码自身异常(一般是环境或者语法非法所致)称作错误 Error,将运行中出现的逻辑错误称为异常 Exception错误是没法通过代码处理的,而异常则可以通过 try/catch 来处理PHP7 中出现了 Throwable 接口,该接口由 Error 和 Exception 实现,用户不能直接实现 Throwable 接口,而只能通过继承 Exception 来实现接口 PHP7 异常处理机制 过去的 PHP...

PHP封装的HTTP-Restful多线程并发请求库
PHP

PHP封装的HTTP-Restful多线程并发请求库

xiaole阅读(754)

REST API 和 RPC 都是在 Server端 把一个个函数封装成接口暴露出去,以供 Client端 调用,不过 REST API 是基于 HTTP协议的,REST致力于通过http协议中的POST/GET/PUT/DELETE等方法和一个可读性强的URL来提供一个http请求。而 RPC 则可以不基于 HTTP协议 因此,如果是后端两种语言互相调用,用 RPC 可以获得更好的性能(省去了 HTTP 报头等一系列东西),应该也更容易配置。如果是前端通过 AJAX 调用后端,那么用 REST...

PHP中被忽略的性能优化利器:生成器
PHP

PHP中被忽略的性能优化利器:生成器

xiaole阅读(690)

如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显。但是,生成器功能的确非常有用。 优点直接讲概念估计你听完还是一头雾水,所以我们先来说说优点,也许能勾起你的兴趣。那么生成器有哪些优点,如下: 生成器会对PHP应用的性能有非常大的影响PHP代码运行时节省大量的内存比较适合计算大量的数据 那么,这些神奇的功能究竟是如何做到的?我们先来举个例子。 概念...

php-Invalid-opcode-153-1-8-问题解决方法
PHP

php-Invalid-opcode-153-1-8-问题解决方法

xiaole阅读(1160)

Google一下发现是php的扩展eaccelerator的问题。新版本的php执行匿名函数等新特性,而eaccelerator对它无能为力。eaccelerator停止开发有年头了,github上最新的commit还是两年前的,唉……搞了半天没找到解决方案,后来发现在github这个库的讨论区中有人给出了方案。就是检查,如果碰到LAMBDA这种方式的函数,就直接跳过好了。修改的代码在这里:https://github.com/toddbc/eaccelerator/commit/e7dc802...