Yaf(Yet Another Framework)是我的第一个发布的PECL扩展,也是我走上PHP内核维护的开始,我一直对它比较有感情,Yaf在过去的8年多时间里,也得到了不少朋友的喜爱,当然Yaf还是有很多不足,但毕竟Yaf主要还是针对性能场景,不能满足所有的需求。
即然Yaf == 性能,借着疫情的在家时间,又花了一些时间对Yaf做了一轮优化,希望能对性能有进一步的提升。
with 18 Comments左手代码右手诗
Yaf(Yet Another Framework)是我的第一个发布的PECL扩展,也是我走上PHP内核维护的开始,我一直对它比较有感情,Yaf在过去的8年多时间里,也得到了不少朋友的喜爱,当然Yaf还是有很多不足,但毕竟Yaf主要还是针对性能场景,不能满足所有的需求。
即然Yaf == 性能,借着疫情的在家时间,又花了一些时间对Yaf做了一轮优化,希望能对性能有进一步的提升。
with 18 CommentsYaconf是一个高性能的PHP配置容器, 它在PHP启动的时候把格式为INI的配置文件Parse后存储在PHP的常驻内存中,不需要每次请求的时候都来分析配置文件,并且在获取配置项的时候"zero-copy",具体的介绍可以看我2015年发布的时候写的介绍:Yaconf - 一个高性能的配置管理扩展。
最近因为疫情,我对Yaconf做了一系列的重构,主要是减少取过程中的内存使用,基本重写了整体的逻辑,那性能优化的结果如何呢? 我们来做个简单的测试。
with 9 Comments这个算是一个比较有用的性能优化技巧吧,主要是刚刚在重构Yaf_Loader的时候又用到,想着这个操作比较常见,就专门拎出来做个小分享...
我们在写代码的时候,在字符串处理的时候,可能会遇到这样的需求,就是把一个目标字符串中所有出现的某个字符a替换为另外一个字c....
with 6 Comments自动加载器在一个大型PHP项目中,往往是最容易被忽视的性能点,因为它一般而言都很简单, 但是它的调用次数确实非常之大。Yaf也不例外,虽然Yaf是C语言写的扩展,但还是可能会占到一个复杂项目1%到3%的耗时,这俩天想了想,总不能天天开会写博客吧,还是写点代码吧?于是乎决定启动重构。:)
经过周末一番重构,我基本上重写了Yaf_Loader::autoload整条生命期, 目的就是降低内存分配,具体的变化可以看:Refactor Yaf_Loader, 效果咋样? 我们来做个简单的测试:
刚刚吃饭的时候想说今天再写点啥? 突然想起来前几天有人在微博上评论我的一个PHP的面试题:
var_dump(PHP_INT_MIN); var_dump(-9223372036854775808);输出一样么? 如果不一样为什么?
我认为这样的题目作为PHP面试题并不合适。 不过作为一个有趣的知识点,我今天就说说这个小问题吧。
with 12 Comments一个问题, var_dump(1...9)输出什么?
动手验证下:
php -r “var_dump(1...9)”; string(4) "10.9"
输出10.9, 乍一看这个var_dump的输出很奇怪是不是? 为什么呢?
with 16 Comments博客迁移完腾讯云以后, 又配置好了ssl,一直在调优PHP的性能,中午调整了半天fpm和opcache, 晚上又突然想起来我之前在某个大会上分享过的使用tmpfs(把内存当成硬盘)来加速网站的做法,于是~搞!
with 14 Comments主要是因为原来的SAE有点贵了,3个月1000块,于是在腾讯云搞了一个服务器 :<
从头搭建环境,mysql, nginx, php, memcahced, wordpress,wp-plugins, themes, ssl, 折腾了一晚上, 中间被个nginx的rewrite和try_files的问题折腾了半天。后来又被ssl折腾了半天.....
博客开了12年了,终于跟随潮流,配置好了ssl和http2...
enjoy:)
这个源自于一个看似很诡异的问题:
if (print("1\n") && print("2\n") && print("3\n") && print("4\n")) {
;
}
你期待这段代码输出什么呢?
with 98 Comments