本文目录一览:
- 1、php7调试怎么在phpstorm中设置
- 2、php7与php5的区别
- 3、php写的程序,进行性能测试,各项资源都正常,增加并发,tps不增长,响应时间增长,您觉得瓶颈在哪?
- 4、鸟哥:让php7达到最高性能的几个tips
php7调试怎么在phpstorm中设置
在max上用phpstorm里debug调试php
背景
最近为了完成某个需求,在看`smarty`源码,当我尝试直接看,痛苦的快吐血,工欲善其事必先利器,虽然之前一直使用phpstorm调试nodejs,但是还没有用phpstorm来debug过php。
建议
先看看这个:PhpStorm 8.0.2 Help :: Configuring Xdebug
## 安装xdebug
1. 打开:Xdebug: Downloads 点击source来下载源码包
2. 然后安装
```bash
解压tar包
tar -xzf xdebug-2.2.5.tgz
进入根目录
cd xdebug-2.2.5
执行phpize
phpize
编译安装xdebug
./configure --enable-xdebug
make
make install
```
配置到php
1. 打开php.ini文件
```bash
cd /private/etc/
#默认没有php.ini,需要拷贝一下
sudo cp php.ini.default php.ini
sudo vi php.ini
```
2. 在下面加入
```bash
[Xdebug]
zend_extension="/usr/local/php_user/xdebug.so"
xdebug.remote_enable = on
;xdebug.remote_handler=dbgp
xdebug.remote_host="127.0.0.1"
xdebug.remote_port=9000
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.remote_autostart = on
```
3. 重启`apache`
```bash
sudo apachectl restart
```
4. 查看phpinfo()信息里面搜索一下`debug`如果有,成功。
配置phpstorm
1. 打开phpstorm,进入顶部导航`phpstrom-perferences..`
2. 点击`php`项,点击`interpreter`后面的`...`按钮
3. 点击`php home`后面的刷新(`...`后面)按钮
4. 这时候你将看到`Debugger: Not installed`变成`Xdebug 2.3.2`(版本号可能不同)
6. 进入`php`栏目下的`Server`,点击`+`新建一个server:host填写你本地的host(如127.0.0.1),点击`apply`保存,并退出`perferences`对话框。
7. 点击顶部导航`run`-点击`+`-选择`PHP Web Application`-选择上一步新建的`server`,`start URL`填入,你要debug的php文件地址,下面会生成一个地址,这个地址在浏览器应该能正常浏览测试的;点击`apply`进行保存。
开始愉快的使用
1. 在你要debug的文件行数字右侧一列,点击一下就会有一个断点。
2. 点击顶部导航`run`-debug,选择你刚刚新建的`debug`名称,这时候会弹出浏览器加载这个php文件了
php7与php5的区别
php5与php7之间的区别:
1、性能提升:PHP7比PHP5.0性能提升了两倍。
2、以前的许多致命错误,现在改成抛出异常。
3、PHP 7.0比PHP5.0移除了一些老的不在支持的SAPI(服务器端应用编程端口)和扩展。
4、PHP 7.0比PHP5.0新增了空接合操作符。
5、PHP 7.0比PHP5.0新增加了结合比较运算符。
6、PHP 7.0比PHP5.0新增加了函数的返回类型声明。
7、PHP 7.0比PHP5.0新增加了标量类型声明。
8、PHP 7.0比PHP5.0新增加匿名类。
9、错误处理和64位支持
php写的程序,进行性能测试,各项资源都正常,增加并发,tps不增长,响应时间增长,您觉得瓶颈在哪?
问题没说清楚,也不好下定论啊,如果性能测试就压100个用户,在没达到瓶颈的情况,各项指标应该都是平稳的,波动起伏不会太大,只有慢慢增加用户,才会知道瓶颈所在随着用户的增加,下面各值会跟随增加吞吐量,CPU,点击率。。。等事务响应时间(这个系统一般没达到极限是不变的)当事务响应时间开始明显变长,说明系统达到了极限可以是CPU极限,可能是点击率极限,可能是网络极限。。。你继续增加用户了,响应时间变长,吞吐量点击开始明显下降,说明就到瓶颈了,然后在看是什么地方的瓶颈如果单一的吞吐量上不去,也可能是用户访问不多,吞吐量当然上不去
鸟哥:让php7达到最高性能的几个tips
1. Opcache
记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常简单, 在php.ini配置文件中加入:
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1"
2. 使用新的编译器
使用新一点的编译器, 推荐GCC 4.8以上, 因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能提升(Wordpres的QPS角度衡量)
其实GCC 4.8以前的版本也支持, 但是我们发现它支持的有Bug, 所以必须是4.8以上的版本才会开启这个特性.
3. HugePage
前面文章介绍过
4. Opcache file cache
开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升.
在php.ini中加入:
opcache.file_cache=/tmp
这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在.
5. PGO
如果你的PHP是专门为一个项目服务, 比如只是为你的Wordpress, 或者drupal, 或者其他什么, 那么你就可以尝试通过PGO, 来提升PHP, 专门为你的这个项目提高性能.
具体的, 以wordpress 4.1为优化场景.. 首先在编译PHP的时候首先:
$ make prof-gen
然后用你的项目训练PHP, 比如对于Wordpress:
$ sapi/cgi/php-cgi -T 100 /home/zk/local/www/htdocs/ wordpress/index.php /dev/null
也就是让php-cgi跑100遍wordpress的首页, 从而生成一些在这个过程中的profile信息.
最后:
$ make prof-clean$ make prof-use make install
这个时候你编译得到的PHP7就是为你的项目量身打造的最高性能的编译版本.