数据密集型架构设计 为什么php不适合做计算密集型业务?
为什么php不适合做计算密集型业务?
PHP即“超文本预处理器”,是一种通用开源代码脚本语言。PHP是在服务器端想执行的脚本语言,与C语言类似,是广泛的网站编程语言。PHP独特的地方的语法水的混合物了C、Java、Perl包括PHP自创武功的语法。不利于学习,使用应用范围,通常适用于Web开发领域。
1.优点:开源能免费性快捷性[程序开发快,运行快,技术本身自学快]
1)跨平台,性能卓越,跟Linux/Unix加强别跟Windows结合性能强45%,而且和很多付费的平台生克制化的很省钱,.例如LAMP(Linux /Apache/Mysql/PHP)或则FAMP(FreeBSD/Apache/Mysql/PHP)结合,也可以数据应用够大可以不决定换PostgreSQL或则Oracle,意见N种数据库。(N10)
2)语法简单点,如果不是有去学习C和Perl的很好上手,并且跟ASP有部分类似。有晚熟的开发工具,.例如NuPHPed,或则ZendStudio等等,再Linu台下这个可以建议使用Eclipse等等。
3)目前主流技术都意见,例如WebService、Ajax、XML等等,起码应用。
4)有比较发下的支持,比如说不使用ADODB也可以PEAR::DB做数据库抽象概念层,用Smarty也可以samrttemplate做模板层,如果不是是PHP5.1的话,还也能使用PDO(PHP Data Object)来ftp访问数据库。
5)有很多能成熟的框架,比如支持什么MVC的框架:phpMVC,允许相似的事件驱动的框架:Prado,接受相似RubyOnRails的快速开发的框架:Cake等等,起码满足你的应用需求。
6)PHP5早就有晚熟的面向对象体系,都能够适应适应基本是的面向对象要求。适合的新规模很大项目。
7)有成熟的社区来意见PHP的开发。
8)目前早很多大型应用都是可以使用PHP,诸如淘宝网、Yahoo、163、Sina等等大型手机门户,很多选用比较PHP来充当他们的开发语言,所以才大型手机门户都能选用它,我想加上也能你的使用了。
9)有很多开源的框架或开源的系统也可以可以使用,.例如都很知名的开源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,开源论坛有Discuz!、Phpwind等,开源博客WordPress,开源代码网店系统如Ecshop、ShopEx等,开源的SNS系统如UCHome、ThinkSNS等。
10)使用成本低(linuxapachemysqlphp内核)
2.缺点
1)函数以此命名不规范的要求驼峰法和下滑线,传参位置不一你明白了的
2)单线程;PHP本身,一直以来php那就是个单进程的程序;只不过php的pthreads扩展巳经有了。只不过它并不稳定,运行运行着是会莫明奇妙的自己直接挂掉;php的扩展是C写的,这就任何一个存储出现线程竞争资源控制问题都能让整个直接挂掉
3)核心异步网络不允许(当然了在linux只有同步非会堵塞网络模型)。却少了这个令没法开发一个能够无法承受大并发的网络应用。悠久的传统的网络模型和io都会堵塞的。这样都差不多的编程的做法那是一个进程(或者线程)服务控制器一个用户链接请求。因此无法能完成像实时自动网游这样必须成千上百宽带连接的任务。尽管php也有Libevent、eio扩充卡这一点可以算某种程度上面的弥补,不过觉得都并非那么系统完善
4)只支持web开发,实在不方便做.exe文件,不方面做桌面应用程序.不方面做手机程序.
5)不合适做爬虫、自动出现运行脚本.科算项目,这语言基本构架就不适合我,可是有很多方法基于。
6)后续维护困难。后期提速空间局限性较大。
在对PHP有一个大体的认识以后,我们来了解一下我想知道为什么说PHP慢?
PHP的慢是相对而言C/C级别的语言来说,要知道,PHP语言最初的设计,就也不是为了解决的办法可以计算密集型的应用场景。我们也可以这样的话清点再理解为,PHP替提升开发效率,而牺牲了执行效率。
我们很清楚PHP一个太大的特点,那是弱类型特性,也就是说,我这个可以随意地定义,定义一个变量,然后把给它随手变量为各种类型的数据。以一个int整型数字为例子,在C语言中:
intnum200;//大多是4字节
可是,如果没有是PHP定义了一个同时的变量,不好算按的存储结构则是:
这个结构体很快就会占据远比C变量多得多的内存,PHP中定义法追加:
$a200;//这变量将求实际占用资源综合比C变量很多倍的存储空间。
总之对PHP来说,不管是什么存储什么类型的数据,也是用上述“通杀”的结构体利用。替兼容性PHP程序员的变量类型“乱入”,PHP能做到了对开发者的友好,可是对执行引擎很残忍。单个变量内存消耗很可能还不明显,一但应用PHP的数组等,则急切度指数猛升(数组的实现是HashTable)。后再,Zend引擎执行时,将这些PHP代码编译为opcode(PHP的中间字节码,格式有点类似汇编),由Zend引擎逐行解释什么想执行。
即便字符串的连接操作,应该数组的简单修改等,完全是“PHP程序员一句话,Zend引擎跑断腿”的节奏。而,同样的的操作,差别C来说,PHP耗掉了更多的CPU和内存等系统资源。除开,另外内存手动回收、变量类型可以确定等等,都会减少系统资源的消耗。
的或,我用纯PHP实现方法的快速排序函数和原生sort函数,排序10000个整型数字,来做一个需要的时间对比,最后::
原生的sort前后历时3.44ms,而我们自己实现的PHP函数sort则是68.79ms。我们发现自己,两者负责执行效率差距巨大无比。我的测试,是可以计算函数执行前后的时间间隔,而不是整个PHP脚本从启动到结束了的时间。PHP脚本起动和关闭过程,本身有着一系列的初始化和清理工作,也会占据地不少的耗时。
通常情况下,PHP不能执行效率的排行是:
快的话的是PHP语言结构(isset、echo等),PHP语言的一部分(它们根本不是函数)。
然后把比较快的就是PHP的原生和拓展资源函数。PHP拓展,设计和实现ZendAPI之上,用C基于的功能,先执行效率和C/Java是属于什么同一个数量级的。
能够慢的就是,我们通过PHP自己写的代码和函数。.例如,要是我们可以使用的比较重的纯PHP实现的框架,只不过框架本身的模块很多,因此,会确实带累语言层面的执行效率,同样的占下更多的内存。(国内的Yaf框架,以去拓展的基于,但负责执行效率远快于纯PHP写的框架。
在一般情况下,我们当然不推荐一下用过PHP利用逻辑复杂计算类型的功能,尤其是Web系统流量比较比较大的场景下。所以,PHP程序员应该是对PHP的各种原生函数和各类拓展有一个比较广泛的的了解,在具体的功能实现程序场景中,诚求更原生的解决方案(原生接口也可以去拓展),而不是自己写一堆古怪的PHP代码来实现程序这类型功能。
如果没有有充足的PHP拓宽思维的新实力,将这类型业务功能重新写过为一个PHP去拓展,也会转弱进阶代码的执行效率。这是一个非常不错的,也被广泛应用PHP优化中。只不过,自己汇编语言的PHP业务拓展的缺点也很确实:
拓展资源变更土地性质需要的时间比较好长,需求变更的时候改也古怪,写得当然不好肯定会影响不大Web服务稳定性。(例如,在Apache的worker模式下,多线程场景下死干净,会影响同一个进程下的其他正常子线程。如果不是是多线程的Web模式,汇编语言去拓展还是需要支持线程安全)
去拓展在PHP更新版本的时候,可能必须做额外的兼容工作。
后的维护和全盘接手成本也都很高。
事实上,在互联网一线企业中,更最常见的一种的解决方案,不是他提高PHP学习拓展,而用C/C独立写一个服务server,然后PHP实际socket和服务server通信来成功业务处理,并不将PHP本身和业务耦合在一起。
只不过,Web服务大部分的性能瓶颈都在网络传输和其他服务server的工程浩大上(或者MySQL等),PHP负责执行的需要的时间在整体需要的时间的占内存比例的很小,因此从业务角度来说,影响可能当然不肯定。
国内哪家大数据分析服务平台比较好?
国内哪家大数据分析服务平台也很好?
派客动力科技是国内著名的大数据管理和数据治理公司,反正大小企业,也可以个性定制相同的数据管理解决方案
MobTech完全覆盖120亿移动端设备的全网受众数据基因库,全力协助企业实现程序各方数据整合,3层级垂直场景5000细化标签助力业务分析;为企业可以提供用户全生命周期的受众洞察、建模分析和场景应用服务。
这里推荐几个平台:
1、星环Transwarp
基于条件hadoop生态系统的大数据平台公司,国内同样能够入选过Gartner魔力象限的大数据平台公司,对hadoop不比较稳定的部分参与了系统优化,功能上接受了细化,为企业提供给hadoop大数据引擎及数据库工具。
2、阿里数加
阿里云发布的站式大数据平台,瞬间覆盖了企业数仓,商业智能、机器学习、数据可视化等领域,可以不提供数据采集、数据深入融合、算出和挖掘服务,将可以计算的几个是从可视化工具参与个性化的数据分析和展示出,图形展示和客户感知良好素质,但要阿里云才能使用,部分体验功能就像,必须有一定会的知识基础。maxcompute是数加底层的计算引擎,有两个维度可以不看这个计算引擎的性能,一个是10小时一次性处理100PB的数据,超过1亿部高清电影,同时一个是单集群规模过万台,并支持多集群合作计算。
3、华为FusionInsight
基于条件Apache并且功能增强的企业级大数据存储、查询和分析的统一平台。完全开放的的大数据平台,可正常运行在开放的x86架构服务器上,它以海量数据处理引擎和实时自动数据处理引擎为核心,根据金融、运营商等数据密集型行业的运行维护、应用开发等需求,打造了魔防、智慧、不可信的平台软件。
4、知于大数据分析平台
知于平台的定位与当今流行的平台定位都不一样,它根据的主要注意是中小型企业,为中小型企业提供给大数据解决方案。现阶段,平台主打的产品是舆情系统、文章传播总结与网站排名监测,每个服务的价格单次在50元左右,性价比极高。
本人其实刚介绍的这四个大数据分析平台也很好,期望对你有帮助!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。