带你了解PHP7 性能翻倍的关键

20岁老牌网页程序语言PHP,最快将在10月底释出PHP 7新版,这是十年来的首次大改版,最大特色是在性能上的大突破,能比前一版PHP 5快上一倍,PHP之父Rasmus Lerdorf表示,甚至能比HHVM虚拟机下的PHP程序性能更快。

HHVM 是脸书为自家网站特性而量身客制的PHP优化机制,不见得适用任何网站。但Rasmus Lerdorf表示,新版目标之一就是要让任何网站开发者,就连使用开发框架Drupal、开源电子商务系统Opencart时,都能有不输使用HHVM 技术的性能。在新版发表前夕,他也趁来台参加PHPConf Taiwan年会时,分享PHP 7性能大突破的关键。

一个20年来历经了多 次改版和无数次优化的成熟语言,还能有性能提高一倍的突破绝非易事,Rasmus Lerdorf坦言,不像一般新项目多半容易找出许多改进空间,新版PHP并非修改部分程序就达到了如此的成果。反而是,透过大量细节优化和性能累加 后,PHP 7才具备了不输HHVM的执行性能。

Rasmus Lerdorf与PHP核心贡献团队花了许多心力减少程序运作时搬动的内存位数,由此加速执行的性能。例如,PHP中储存变量的数据架构zval从24位 缩减至16位、Hashtable从72位减少至56位,并检视PHP中的函式,思考有无任何改进性能的空间。

除了从减少内存的使用着手 外,Rasmus Lerdorf更检视CPU的Cache line的运作原理,了解程序代码如何与CPU互动、编译程序如何在新CPU架构下编译程序代码等细节,确保PHP 7的程序代码符合现代CPU的架构。虽然每个项目的优化对性能贡献都低于0.5%,但由于优化的项目很多,或是某项改善的功能会被应用程序反复呼叫,整体 修正的综效结果就能有如此大的进展。
更多 »

PHP实现KMP算法

记得大二的时候,就学过KMP算法,当时还觉得这个算法很有趣。今天,做字符串匹配,却没想到要用它,而用了较笨的方法求解,时间复杂度为O(m*n)。下面重温一下KMP算法。

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)。

KMP算法的具体步骤如下:

1.

首先,字符串”BBC ABCDAB ABCDABCDABDE”的第一个字符与搜索词”ABCDABD”的第一个字符,进行比较。因为B与A不匹配,所以搜索词后移一位。

更多 »

数据收集原理简单分析

数据收集原理分析

简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(如打开某网页、点击某按钮、将商品加入购物车等)及行为附加数据(如某下单行为产生的订单金额等)。早期的网站统计往往只收集一种用户行为:页面的打开。而后用户在页面中的行为均无法收集。这种收集策略能满足基本的流量分析、来源分析、内容分析及访客属性等常用分析视角,但是,随着ajax技术的广泛使用及电子商务网站对于电子商务目标的统计分析的需求越来越强烈,这种传统的收集策略已经显得力不能及。

后来,Google在其产品谷歌分析(Google Analytics)中创新性的引入了可定制的数据收集脚本,用户通过谷歌分析定义好的可扩展接口,只需编写少量的javascript代码就可以实现自定义事件和自定义指标的跟踪和分析。目前百度统计、搜狗分析等产品均照搬了谷歌分析的模式。

其实说起来两种数据收集模式的基本原理和流程是一致的,只是后一种通过javascript收集到了更多的信息。下面看一下现在各种网站统计工具的数据收集基本原理。

流程概览

首先通过一幅图总体看一下数据收集的基本流程。

更多 »

WebSocket与消息推送

B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议只支持请求响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度,因为服务器不需要与客户端长时间建立一个通信链接,但不容易直接完成实时的消息推送功能,如聊天室、后台信息提示、实时更新数据等功能,但通过polling、Long polling、长连接、Flash Socket以及HTML5中定义的WebSocket能完成该功能需要。

二、WebSocket简介与消息推送

B/S架构的系统多使用HTTP协议,HTTP协议的特点:

1 无状态协议
2 用于通过 Internet 发送请求消息和响应消息
3 使用端口接收和发送消息,默认为80端口
底层通信还是使用Socket完成。

更多 »

优化ionic2程序启动速度

ionic2打包android的app打开时很长时间白屏的简单解决方法:

在用ionic build android命令时,在后面加上--prod参数,即使用ionic build android --prod命令。

我的demo以前10几秒启动,加--prod编译后4秒启动。

优化ionic2程序启动速度方法貌似还有不少,以后有时间专门研究一下写一篇全面点的。

http://www.cnblogs.com/macq/p/6494798.html

SSD固态硬盘构造和原理你知道多少

随着制造工艺的不断提升 固态硬盘的价格也慢慢降到了大众可以接受的范围 越来越多的人开始为自己的爱机增加一个固态硬盘 可大多数人对固态硬盘的构造和原理一无所知,接下来 就随我一起揭开固态硬盘的神秘面纱.

001.png

1.固态硬盘的特点
2.从沙子到颗粒的蜕变
3.闪存的历史与类型
4.闲话SandForce–神秘的压缩
5.如何爱护自己的固态硬盘

一 固态硬盘与传统硬盘的绝对优势

1. 固态硬盘没有噪音。因为固态硬盘没有风扇和机械马达,工作时噪音值为0分贝。某些高端或大容量产品装有风扇,所以仍然会产生噪音。
2. 固态硬盘是不需要用磁头,快速随机读取,读延迟极小。根据相关测试:两台电脑在同样配置的电脑下,搭载固态硬盘的笔记本从开机到出现桌面一共只用了18秒,而搭载传统硬盘的笔记本总共用了31秒,两者几乎有将近一半的差距。
3. 基于DRAM的固态硬盘写入速度极快。
4. 启动快,没有电机加速旋转的过程。
5. 低容量的固态硬盘比同容量硬盘体积小、重量轻。但这一优势随容量增大而逐渐减弱。直至256GB,固态硬盘仍比相同容量的普通硬盘轻。
6. 相对固定的读取时间。由于寻址时间与数据存储位置无关,因此磁盘碎片不会影响读取时间。
7. 低容量的基于闪存的积海固态硬盘在工作状态下能耗和发热量较低,但高端或大容量产品能耗会较高。
8. 固态硬盘比传统的硬盘工作温度范围更大。典型的硬盘驱动器只能在5到55摄氏度范围内工作。而固态硬盘可在-10~70摄氏度工作,一些工业级的固态硬盘还可在-40~85摄氏度,甚至更大的温度范围下工作。
9. 内部不存在任何机械活动部件,不会发生机械故障,也不怕碰撞、冲击、振动。这样即使在高速移动甚至伴随翻转倾斜的情况下也不会影响到正常使用,而且在笔记本电脑发生意外掉落或与硬物碰撞时能够将数据丢失的可能性降到最小。
更多 »

据说是博士生给研究生的经验

1. 先看综述,后看论著。 看综述搞清概念,看论著掌握方法。
2. 早动手。 在师兄师姐离开之前学会关键技术。
3. 多数文章看摘要,少数文章看全文。 掌握了一点查全文的技巧,往往会以搞到全文为乐,以至于没有时间看文章的内容,更不屑于看摘要。真正有用的全文并不多,过分追求全文是浪费,不可走极端。当然只看摘要也是不对的。
4. 集中时间看文献。 看过总会遗忘,看文献的时间越分散,浪费时间越多。集中时间看更容易联系起来,形成整体印象。
5. 做好记录和标记。 复印或打印的文献,直接用笔标记或批注。pdf 或html 格式的文献,可以用编辑器标亮或改变文字颜色。这是避免时间浪费的又一重要手段。否则等于没看。
6. 准备引用的文章要亲自看过。 转引造成的以讹传讹不胜枚举。
7. 注意文章的参考价值。 刊物的影响因子、文章的被引次数能反映文章的参考价值。但要注意引用这篇文章的其它文章是如何评价这篇文章的:支持还是反对,补充还是纠错。
8. 交流是最好的老师。 做实验遇到困难是家常便饭,你的第一反应是什么?反复尝试?放弃?看书?这些做法都有道理,但首先应该想到的是交流。对有身份的人,私下的请教体现你对他的尊重;对同年资的人,公开的讨论可以使大家畅所欲言,而且出言谨慎。千万不能闭门造车。一个实验折腾半年,后来别人告诉你那是死路,岂不冤大头?
9. 最高层次的能力是表达。 能力再好的工作最终都要靠别人认可。表达能力,体现为写和说的能力,是需要长期培养的素质。比如发现一个罕见病例,写好了发一篇论著;写不好只能发一个病例报道。比如做一个课题,写好了发一篇或数篇论著;写不好只能发一个论著摘要或被枪毙。一张图,一张表,无不是表达能力的体现。寥寥几百上千字的标书,可以赢得大笔基金;虽然关系很重要,但写得太差也不行。有人说,我不学PCR,不学spss,只要学会ppt(powerpoint)就可以了。此话有一点道理,实验室的boss 们表面上就是靠一串串ppt 行走江湖的。经常有研究生因思维敏捷条例清楚而令人肃然起敬。也经常有研究生不理解”为什么我做了大部分工作而老板却让另一个没怎么干活的人写了文章?让他去大会发言?”你没有看到人家有张口就来的本事吗?
10. 学好英语,不学二外。 如今不论去日本还是欧洲,学术交流早已是英语的天下。你不必为看不懂一篇法语的文章而遗憾,写那篇文章的人正在为没学好英语而犯愁。如果英文尚未精通,暂且不要去学二外。
更多 »

十大数据挖掘算法及各自优势

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.

不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。

1. C4.5

C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:

1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;

2) 在树构造过程中进行剪枝;

3) 能够完成对连续属性的离散化处理;

4) 能够对不完整数据进行处理。

C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。

2. The k-means algorithm 即K-Means算法

k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均 方误差总和最小。
更多 »

爱怕什么

心理导读:爱是世界上最有力量的东西,它让人们有勇气披荆斩棘走过很长的路;然而,爱又是很脆弱的,一时不小心的触碰就让它碎了一地。爱怕很多,如果你珍惜这份爱,就要好好呵护它。

爱挺娇气挺笨挺糊涂的,有很多怕的东西。

 

爱怕撒谎。当我们不爱的时候,假装爱,是一件痛苦而倒霉的事情。假如别人识破,我们就成了虚伪的坏蛋。你骗了别人的钱,可以退赔,你骗了别人的爱,就成了无赦的罪人。假如别人不曾识破,那就更惨。除非你已良心丧尽,否则便要承诺爱的假象,那心灵深处的绞杀,永无宁日。
更多 »

PHP 远程 DoS 漏洞

4 月 3 日,有人在 PHP 官网提交 PHP 远程 DoS 漏洞(PHP Multipart/form-data remote dos Vulnerability),代号 69364①。 由于该漏洞涉及 PHP 的所有版本,故其影响面较大,一经发布迅速引发多方面关注。14 日,各种 PoC 已经在网络上流传。此次 漏洞具备如下特性: 1. 一旦被利用成功,可以在迅速消耗被攻击主机的 CPU 资源,从而达到 DoS 的目的; 2. PHP 在全球的部署量相当大,为攻击者提供了相当多可以攻击的目标; 3. PHP 官方目前仅给出了 5.4 及 5.5 版本的补丁 受此漏洞影响的软件及系统包括 PHP 的如下版本。

• PHP 5.0.0 – 5.0.5

• PHP 5.1.0 – 5.1.6

• PHP 5.2.0 – 5.2.17

• PHP 5.3.0 – 5.3.29

• PHP 5.4.0 – 5.4.40

• PHP 5.5.0 – 5.5.24

• PHP 5.6.0 – 5.6.8

5月14日 ,PHP官方更新了PHP 5.4.41、PHP 5.5.25和PHP 5.6.9。

请所有使用旧版本PHP的站长朋友尽快进行最新版本的PHP。

Copyright © All Rights Reserved · 菁菁博客 Since 2012 · Proudly powered by WordPress