让PHP7达到最高性能的几个Tips
PHP7已经发布了, 作为PHP10年来最大的版本升级, 最大的性能升级, PHP7在多放的测试中都表现出很明显的性能提升, 然而, 为了让它能发挥出最大的性能, 我还是有几件事想提醒下.
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
PHP7已经发布了, 作为PHP10年来最大的版本升级, 最大的性能升级, PHP7在多放的测试中都表现出很明显的性能提升, 然而, 为了让它能发挥出最大的性能, 我还是有几件事想提醒下.
LRU是Least Recently Used 的缩写,翻译过来就是“最近最少使用”,也就是说,LRU缓存把最近最少使用的数据移除,让给最新读取的数据。而往往最常读取的,也是读取次数最多的,所以,利用LRU缓存,我们能够提高系统的performance.
随着 HTTP/2 的逐渐普及,以及国内网络环境越来越糟糕(运营商劫持和篡改),HTTPS 已经开始成为主流。HTTPS 在 TCP 和 HTTP 之间增加了 TLS(Transport Layer Security,传输层安全),提供了内容加密、身份认证和数据完整性三大功能,同时也给 Web 性能优化带来新的挑战。上次写的「使用 BoringSSL 优化 HTTPS 加密算法选择」一文中,我介绍了如何针对不同平台启用最合适的传输加密算法。本篇文章我打算继续写 HTTPS 优化 —— TLS 握手优化。 TLS 的前身是 SSL(Secure Sockets Layer,安全套接字层),由网景公司开发,后来被 IETF 标准化并改名。通常没有特别说明时,SSL 和 TLS 指的是同一个协议,不做严格区分。
前一段时间热炒的Java反序列化漏洞,大家在玩的很嗨的时候貌似忽略了一件很重要的事情——Java在cs架构的设计中使用序列化传输是非常普遍的现象,而在像JBoss这种中间件也使用这种设计。所以,我在一边研究这个漏洞,一边看大家嗨嗨的玩的同时,也很好奇在一些通过Java实现的CS架构应用(比如:大型国企都喜欢用的会计软件、内容发布系统),是不是也会用到Apache Commons Collections这个库。 不知道是不是研究Java Web的大神们都在闷声发大财,这次这个漏洞的分析文章大多都停留在那个老外blog中的各个中间件的利用玩法上,却没有注意到Java Web中常见的架构都会因为这个问题而沦陷。而且除了长亭之外的文章,其他各家的修复建议大多都是针对利用来进行修复,治标不治本。
给产品经理讲技术之网页与原生App如何交互。
给产品经理讲技术之APP的推送是咋回事:睡觉前我明明关闭了淘宝、网易新闻等app,为什么第二天他们又自动出现在我手机的通知栏上呢?
我看到一个新闻——雅虎取消了QA团队,工程师必须自己负责代码质量,并使用持续集成代替QA。 同时,也听到网友说,“听微软做数据库运维的工程师介绍,他们也是把运维工程师和测试工程师取消了,由开发全部完成。每个人都是全栈工程师”。于是,我顺势引用了几年前写过一篇文章《我们需要专职的QA吗?》,并且又鼓吹了一下全栈。当然,一如既往的得到了一些的争议和嘲弄;-)。
当磁盘空间爆满后,MySQL会发生什么事呢?又应该怎么应对?
问题 掉进坑里面了。最近完成了阿里PHP5.5.25的rpm打包。今天在升级其中一个扩展的时候发现,只要升级成功之后,扩展在配置文件中相关配置项就会被注释掉。最终定位到是spec文件中%postun段写的有问题。
常常被人问及微信中使用的X5内核的问题,其实我也不是很清楚,只知道它是基于android 4.2的webkit,版本号是webkit 534。今天正好从X5团队拿到了一份问题汇总,梳理下发出来,给各位开发者以参考——不排除明天会删除这篇文章的可能。
CSS中的margin外边距重叠(Collapsing margins)指的是毗邻的两个或多个外边距会合并成一个外边距。其中所说的margin毗邻,可以归结为以下两点:(1)这两个或多个外边距没有被非空内容、padding、border或clear分隔开。(2)这些margin都处于普通流中,浮动元素、inline-block元素、绝对定位元素的margin不会和垂直方向上其他的margin元素重叠。(3)只有垂直方向的margin才会折叠,水平方向的margin不会发生折叠的
因为常用到命令行,而这中文版 Windows 的命令行默认字体是“新宋体”,无法选择其他字体,而这“新宋体”不知为何把 1 和 l 搞成双胞胎…… 搜啊搜,真没简单的方法,直接在窗口标题“右键》属性》字体”只能设置字体大小,当然还有个点阵字体可以选——问题是难看。
放下眼前的事情与执念,算一算成本吧。
在我动手搞这个 JSON 解析库之前,我一直在用 SwiftJSON 这个库,这个库是国人开源的最受欢迎的 Swift 项目,没有之一,也是全球最受欢迎的 Swift 库第二名,第一名是网络库 Alamofire。由于要实现 ["key"]["key1"] 这样的递归查找,我一直觉得 JSON 解析库非常复杂难搞。
最近的工作总是在EMR上跑Spark的job,从代码完毕到测试完毕的过程是这样的: 1. 本地测试: 构建 -> 本地UT -> 观察分析结果,这一阶段可以发现逻辑问题 2. EMR上执行测试: 上传最新构建到S3 -> 准备EMR资源(包括计算资源和数据) -> 在EMR上执行Spark job -> 观察分析结果,这一阶段可以发现在数据量较大的情况下才出现的问题 3. Workflow集成测试(这个workflow是公司内部的一个管理job的工作流系统): 启动workflow -> 观察job状态 -> 等待workflow调度和资源分配 -> 等待workflow执行结束 -> 观察分析结果,这一阶段可以发现在workflow配置、参数等环境上的问题
写个sh脚本 我们可以在比如/home下新建个文件叫做dl.sh ,在里面写上我们需要运行的命令,然后保存。 这个时候我们需要在/etc下编辑一个叫rc.local 的文件,需要root权限。在终端先su获取root权限如果你有root帐号的话,然后 vim /etc/rc.local 编辑,在最下面输入 nohup bash /home/dl.sh>/home/d.txt & 保存。
关于在linux上二进制部署mysql,我其实现在linux已经很熟练了,那是一年前的曲折之路。不过这篇文章还是有参考意义,毕竟测试环境可以再3分钟就弄好mysql服务器.还是很happy的一件事情.之前笔记是参考别人写的,现在重新整理.主要问题是centos和ubuntu上,ubuntu上需要注意的事项等说明。
将数组转化为列表 将数组转化为一个列表时,程序员们经常这样做......
当我在使用git的时候,有三个东西的出现,一度让我非常困扰,就如题所述,staging,index,和cache。 比如,当我阅读git官网提供的电子书《Pro Git》的时候,最初一章里,就提到,文件在git里面,有三种状态,working copy,staging area,和 in repository。而在读一些man pages的时候,比如git-reset命令,又会看到index,这非常让人困扰。而git-rm 指令又有一个参数叫 –cached,其作用是”unstage and remove paths only from the index”,更加奇怪了,同时提到了stage和index,而参数名竟然是cached!!!
EXPLAIN的结果中,有哪些关键信息值得注意呢?