PHP

关于PHP程序员解决问题的能力

这个话题老生长谈了,在面试中必然考核的能力中,我个人认为解决问题能力是排第一位的,比学习能力优先级更高。解决问题的能力既能看出程序员的思维能力,应变能力,探索能力等,又可以看出他的经验。如果解决问题能力不佳是无法通过面试的。

这里举个例子,假如我执行了一个PHP的脚本,如php test.php,预期是可以返回一个字符串。但执行后没有任何信息输出,这时候通过什么方法能知道程序错在哪里?这里可以将解决问题能力分为8个等级,越到后面的表示能力越强。…

        

被swoole坑哭的PHP程序员

首先说一下对swoole的理解:披着PHP外衣的C程序。很多PHPer朋友看到swoole提供的强大功能、外界对其的崇拜便跃跃欲试的安装、调 试其demo、编写新功能,然后兴奋的奔走相告。

本文主要记录一下学习swoole的过程、填过的坑以及swoole究竟有多么强大!

首先说一下对swoole的理解:披着PHP外衣的C程序。很多PHPer朋友看到swoole提供的强大功能、外界对其的崇拜便跃跃欲试的安装、调 试其demo、编写新功能,然后兴奋的奔走相告。没过几天当你按照自己的理解继续用swoole时,发现代码并没有按照自己的预期运行,然后开始破口大 骂,什么破东西呀,代码跟demo基本一样,为啥运行不通呢?什么狗屁work、task、共享内存、ipcs、异步,各种问题涌现,然后迅速去查官方文 档,发现文档中竟然对这些并没有提及,只是简单的介绍怎么使用,此时几乎对swoole丧失希望。…

    

PHP7性能新特性与Swoole

最近PHP官方终于发布了传说中的PHP7,虽然只是alpha版。PHP7号称是新一代的PHP,官方开发组对Zend引擎底层做了大量修改来优化PHP的性能。可以说PHP7这个版本的主题就是性能优化

在过去PHP一直以开发效率快著称,而语言本身的性能较差(当然比Python,Ruby还是要快一些的)。普通的Web网站都是IO密集型的程序,瓶颈在MySQL上,所以体现不出PHP的性能劣势。但在密集计算方面比C/C++、Java等静态编译语言差几十倍甚至上百倍。另外使用设计非常复杂的开发框架,如Symfony、Laravel等,程序性能也会明显下降。…

        

PHP7革新与性能优化

有幸参与2015年的PHP技术峰会(PHPCON),听了鸟哥(惠新宸)的关于PHP7的新特性和性能优化的分享,一切都令人感到激动。鸟哥是国内最权威的PHP专家,他的分享有很多非常有价值的东西,我通过整理分享的PPT和收集相关资料,整理为这篇解读性质的技术文章,希望能给做PHP开发的同学一些帮助。

    

swoole 开发注意事项–by桶哥9月13号优才分享ppt

swoole里的对象是长驻内存的,所有象连接池 、配置项、单例等都是持久化的。

编写swoole程序要注意内存控制,像一定要及时释放资源,像mysql连接,文件读写,socket 连接等都要及时关闭,这是和普通php不一样的地方。static数据 也要及时清除,另外不建议在swoole里面用超全局全量,因为swoole是多进程的,所有进程间的变量不能共享,如果一定要使用,建议在框架里把超全局变量封装好。

swoole不适合做cpu密集计算型项目。

对mysql连接特别要注意,因为是长连接,所以时间长了,再去执行mysql查询就会出现 mysql has gone away错误, 解决办法是查询前采用ping 检测,如果连接断了,就重连。

还有要注意的是tcp粘包处理。

热加载  http://wiki.swoole.com/wiki/page/20.html 。

数据共享方法:可以用swoole table, apcu,yac ,redis,memcached.

 

•1)  Mysql Gone Away

原因:mysql server主动关闭

转载请注明:来源:http://blog.p2hp.com/archives/2298…

        

用Zephir开发PHP扩展.

Zephir  是一种类似于PHP的语言的高级语言,简化了PHP扩展的创建和可维护性. zephir扩展输出C代码 ,因此能被主流的C编译器编译和优化,如 gcc/clang/vc++.

它是优秀的Phalcon团队为开发第二版本框架所编写的新兴语言,其语法和PHP 非常相信,开发扩展非常方便,执行效率上据说是与C不分上下, 他的编译流程如下:Zephir -> C -> bin.

项目地址 https://github.com/phalcon/zephir  官网http://zephir-lang.com/

本文 主要分享Zephir在ubuntu下的安装与使用方法.…

        

php中mysql数据库异步查询实现

问题

通常一个web应用的性能瓶颈在数据库。因为,通常情况下php中mysql查询是串行的。也就是说,如果指定两条sql语句时,第二条sql语句会等到第一条sql语句执行完毕再去执行。这个时候,如果执行2条sql语句,每条执行时间为50ms,全部执行完毕可能需要100ms。既然,主要原因是sql的串行执行导致。那我们是不是可以改变执行方式来提高性能呢?答案是,可以的。我们可以通过异步执行的方式来提高性能。…