您好,欢迎光临! 推荐您使用Chrome浏览器访问本站。

PHP session锁引起并发效率问题

680 views
PHP session锁引起并发效率问题PHP默认的会话处理器是session.save_handler = files(即文件)。如果同一个客户端同时并发发送多个请求(如ajax在页面同时发送多个请求),且脚本执行时间较长,就会导致session文件阻塞,影响性能。因为对于每个请求,PHP执行session_start(),就会取得文件独占锁,只有在该请求处理结束后,才会释放独占锁。这样,同时多个请求就会引起阻塞。 解决方案有3种: 1、在用完session的时候使用session_write_close()释放文件锁。 2、利用session_set_save_handler()函数是实现自定义会话处理。 3、自己写session类(写session操作较少......

mysql死锁-非主键索引更新引起的Deadlock

768 views
mysql死锁-非主键索引更新引起的Deadlock问题: 执行如下更新时产生死锁 UPDATE contactlist SET name=’xxx’ WHERE userid=’1′ AND contact_id=’90’ 报Deadlock found when trying to get lock; try restarting transaction 其中userid和c_contact_id都有索引,但不是主索引。 解决方式: 先通过userid=’1′ AND contact_id=’90’取得主键,再用主键更新。 注: 在采用INNODB的MySQL中,更新操作默认会加行级锁,行级锁是基于索引的,在分析死锁之前需要查询一下mysql的执行计划,看看是否用到了索引,用到了哪......

php常量定义,const与define的区别

591 views
php常量定义,const与define的区别【问】在php中定义常量时,const与define的区别? 【答】使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。 (1).const用于类成员变量的定义,一经定义,不可修改。define不可用于类成员变量的定义,可用于全局常量。 (2).const可在类中使用,define不能。 (3).const不能在条件语句中定义常量。 例如: if (…){ const FOO = ‘BAR’; // 无效的invalid } if (…) { define(‘FOO’, ‘BAR’); // 有效的valid } (4).const采......

PHP性能优化之编码参考

615 views
PHP性能优化之编码参考用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。 在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。 PS:像count、strlen这样的操作其实是O(1)的,因此不会带来太多消耗......

PHP性能优化之php.ini

589 views
PHP性能优化之php.iniPHP优化对于PHP的优化主要是对php.ini中的相关主要参数进行合理调整和设置,以下我们就来看看php.ini中的一些对性能影响较大的参数应该如何设置。 # vi /etc/php.ini (1) PHP函数禁用找到: disable_functions = 该选项可以设置哪些PHP函数是禁止使用的,PHP中有一些函数的风险性还是相当大的,可以直接执行一些系统级脚本命令,如果允许这些函数执行,当PHP程序出现漏洞时,损失是非常严重的!以下我们给出推荐的禁用函数设置: disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,she......