PHP 数组函数 array_diff()、array_merge() 与数组操作符 +

array_diff() 函数是以值为判断依据,比如<?use Libs\Helper;include '../vendor/autoload.php';$a = array(0 => '1760', 1 => '1199', 2 => '4188', 3 => '1552', 4 => '6388',);$b = array(1760, 9999, '8999');Helper::p(array_diff($a, $b));Helper::p(array_diff($b, $a));输出Arra[1] => 1[2] => 4[3] => 1[4] => 6Arra[1] => 9[2] => 8同样,array_merge 函数也是以值为判断依据进行合并数组,如下<?use Libs\Helper;include '../ven... Read More

利用 xhprof(PHP)扩展进行 WEB 性能分析

最近工作有些小忙,经常加班,偶尔还会通宵。但最终热门微博“混合流”顺利地全量上线了。可是,从性能角度来说,还是有不少的提升空间的。下面说下利用 xhprof 来进行 WEB 性能的分析。安装 xhprof 扩展官方的文档胜过一切 => http://php.net/xhpro注意:如果想利用 xhprof 绘图,那么需要将系统默认禁用函数打开。;disable_functions = phpinfo,system,exec,shell_exec,passthru,proc_close,show_sourc部署xhprof的运行环境经过上面的配置,在你跑过项目后,xhprof 会输出一份报告文件。不过,这份文件的内容是被序列化的数组。所以,需要搭建一个能够读取该数据文件的 WEB 环境。这里给一份 xhprof 环境的代码:http://pan.baidu.com/s/1bnLvmr之后通过访问 xhprof 的环境,你会看到如下报告界面。... Read More

高并发场景下的缓存使用误区

十一聚会,某谈及人生理想。我要的是“地位,身份和爱情!”,其实就是金钱,面子和美女。O.正文9月份,连续两天(AB 两天)线上出现业务故障,redis 监控曲线瞬间上涨。业务场景:一千万 UV / 日redis监控曲线(修改图片好麻烦,曲线意会下吧~)redis日志业务代码<?(self::$_debug) ? Helper_Log::writeApplog('newFeatureOfMixedFeed', "初始化配比数据.") : null;if (self::$_redisDb == null) self::$_redisDb = new Comm_Redisdb(self::REDIS_SERVER);/** 判断是否有缓存数据 **$total = self::$_redisDb->lSize(Conf_Sailmixfeed::REDIS_CONF_RAT... Read More

Git 与 SVN 的使用感受

工作环境需要,分别接触了 Git 和 SVN 版本控制工具。接触不久,尽管这两种工具都不是很熟悉,目前仅能达到满足简单的工作需求(有时还需要查引擎)。但,还是有一些感受以记录。分支(branches)与里程碑(tagsGit 的分支和里程碑很有趣和简单,可以快速地在当前工作区切换不同的分支和里程碑。SVN 的分支和里程碑本身就是一个目录(拷贝),目录下分别有一个 .svn 的文件夹以存储版本信息。所以,SVN 切换分支很麻烦,需要切换工作区(每一个工作区只对应服务器的某一分支)。而 Git 却很方便。集中式与分布式这个事情和上面的分支和里程碑是有重叠的地方的。Git 采取的是分布式。简单的说就是每台 checkout 过代码的笔记本上都有着一个完整的代码库。而 SVN 却是集中式的,只有一个是代码仓库,就是服务器。所以,Git可以本地提交,SVN需联网提交。Git 是没有中心服务器的,每... Read More

WEB 开发之前端与后端通信解决方案

每天都得找点乐子,今天的乐子就是“WEB开发中前端与后端通信的解决方案”。首先,说一下“神圣”的需求。假设,我们面前是一个报名活动的页面。所有的逻辑都发生在这报名按钮上,下面是导图做法一按钮是一个链接,当我们用可爱的手指轻轻触碰它时。它会告诉浏览器,我是一个链接。之后,浏览器被跳转到一个新的地址上。与此同时,后端会执行当前的逻辑,渲染对应的 WEB 页面。这种做法很糟糕1、用户体验不好,跳转页面的吞吐量比较高,加大用户的等待时间2、同时,也加大服务器的负担3、代码冗余度较高,需要写若干个前端页面和后端方法做法二那么,用 Ajax 来实现前后端的通信(异步)也许是个不错的做法。既然,谈到通信,那么必定要有个标准。那,标准是个什么东西?举个例子(秒懂!哈哈公认的标准脸型不符合标准的脸型所以,你知道。如果程序没有标准,是一件多么令人“恼怒”的事情。需要两个 PHP 类库标准接口<?... Read More