A. php性能更好的去重和是否存在
去重
很多时候操作数组去重,一般使用array_unique()函数,但是在大数组的情况下运行地慢一些
更好的方式:
//把数组的键值交换过来,因为数组的健不能重复,就实现了去重
$array = array('a', 'b', 'c', 'a', 'd');
$array = array_flip($array);
//修复数组键值序列
$array = array_keys($array)
//再把数组的键值交换回来
$array = array_flip($array);
判断是否存在
一般情况下判断一个值是否已在在数组中in_array(), in_array()性能不太好
更好的方式
$array = array('a', 'b', 'c', 'd');
if (isset(array_flip($array)['a'])){
};
B. PHP的优缺点是什么
HP应该算是现在大中小非专业网站企业会优先使用的网站建设编程语言,相对于ASP和JSP来说,PHP在在很多方面更适合个人以及小型企业做开发,这主要是因为PHP本身独特的优势导致的,那么下面小编就来为大家盘点PHP得到众多企业支持的原因。
PHP的优势包括:
1、开放源代码
由于PHP开放源代码,因此基本上可以在网络上找到适合自己的源代码。
2、免费性
和其它技术相比,PHP本身免费,并且也是开源代码。
3、快捷性
PHP程序开发快,运行快,技术本身学习快。由于PHP可以被嵌入于HTML语言,新词相对于其他语言来说编辑简单,实用性强,更适合初学者。
4、跨平台性强
由于PHP是运行在服务器端的脚本,因此可以在多种平台上得到应用,包括了UNIX、linux、WINDOWS、Mac OS等系统。
5、效率高
PHP由于消耗相当少的系统资源,因此工作效率更高。
6、图像处理
一般来说,PHP动态创建图像,而且目前PHP图像处理默认使用GD2。因此也可以配置为使用image magick进行图像处理。
7、面向对象
在PHP4,PHP5 中,面向对象方面都做出了很大的改进,因此PHP完全可以用来开发大型商业程序。
8、专业专注
PHP同为类C语言,而且更重要的就是PHP以支持脚本语言为主。
上面介绍的八点内容就是关于PHP被广大企业使用的优势,其实PHP相对于其它几种语言来说,更适合初学者学习和使用,因此想要入门的朋友可以多找一些材料来学习。
C. 请问为什么PHP的性能比java的servlet性能好
很多Java EE应用服务器的组件比较庞大,优化也不够。
很多JSP/servlet的开发者对java和算法不通,滥用字符串处理数据。写出来的代码效率极低。
导致同样的实现不可能比PHP慢的Java写出来的东西反而比PHP慢。
总之,比PHP慢是因为人不行。
D. php7.4性能如何
参考一下这篇文章
https://www.oschina.net/news/106908/php-7-4-early-benchmarks?p=2
E. php性能优化的几个方法
面对一个性能问题是,第一步永远是找到问题产生的原因,而不是去看技巧列表。搞明白产生瓶颈的原因,找到目标并且实施修复,然后再重新测试。查找瓶颈只是万里长征的第一步,这里有些常用技巧,希望对最重要的第一步找到瓶颈能有所帮助。
使用监控方法(比如监控宝),进行benchmark和监控,网络,特别是网络状况瞬息万变,做得好的话5分钟就可以找到瓶颈。
剖析代码。必须了解那部分代码耗时最多,在这些地方多多关注。
想找到瓶颈,请检查每个资源请求(比如,网络、CPU、内存、共享内存、文件系统、进程管理、网络连接等等……)
先对迭代结构和复杂的代码进行benchmark
在在真实负载下用真实数据进行真实测试,当然,如果可以最好用产品服务器。
缓存
(Caching)
有些人认为缓存是解决性能问题最有效的办法之一,试试这些:
使用OPCODE(操作码)缓存,这样脚本就不会在每次访问时重新编译一次。比如:启用Windows平台上的windows缓存扩展。可以缓存opcode,文件,相对路径,session数据和用户数据。
考虑在多服务器环境下使用分布式缓存
在调用imap_header()之前先调用imap_headers()
编译
vs. 解释(Compiling vs. Interpreting)
将PHP源码编译成机器码。动态解释执行同样的编译,但它是按行执行的。编译为opcode是折中选择,它可以将PHP源码翻译为opcode,之后opcode再转为机器码。以下为关于编译与解释的相关技巧:
上线之前将PHP代码编译为机器码。opcode缓存尽管并不是最好的选择,但依旧比解释型来得强。或者,考虑将PHP代码编译成一个C扩展。
PHP的opcode编译器(bcompiler)还不能在产品环境中使用
F. Windows服务器上运行php比Linux运行php,性能上相差有多大
linux下性能和稳定性较好,apache+php+mysql是最佳组合,再加上phpmyadmin管理数据库,要比sql简介不少。从漏洞和磁盘运行的状态,linux要比windows下优异的多。在linux下无论从安装到配置到定制,很容易上手。php要比aps安全的多
G. php框架相对原生php影响性能或效率吗
影响不大。因为http的请求,会受到网络速度的限制。与此相比,程序内部实现造成的影响,可能是很微小的。目前流行的php框架有yii、ci等。用它们编写一个简单的程序,和不使用框架,运行速度几乎没有差别。但使用框架时也需注意一些问题。
一个网页响应速度,和其网站架构、HTML的结构和比较耗时的操作关系较大。
其中网站架构涉及硬件设备和应用程序分布式布署的问题,对性能影响最为显着。一些程序难以解决的性能瓶颈,要用架构设计去解决。比如数据库读写分离。
优化HTML结构也是优化网站的课题之一。更为简约的编码,可以节约带宽,也能加快浏览器渲染的速度。页面字节大小,是前端设计的重要指标。异步加载和代码压缩,是减少网页下载时间的重要手段。
程序比较耗时的操作,如数据库查询、图片处理、压缩文件等。其中数据库的因素较为普遍。这里要提到一个框架的问题。yii框架自带的数据库模型非常强大,有了它我们基本上不用写SQL语句。但是,它自己生成的SQL语句不一定是最佳的。为了保证网站性能,关键的查询需要自己把握。而且比较复杂的抽象,也会降低性能。它的官方文档中,也不建议在大型网站中使用模型。
综上,框架的特性要选择性地使用。使用前要仔细阅读文档。优化网站要考虑多种因素,而不是仅仅关心程序的实现。要杜绝对程序效率影响不大的"微优化"。
H. python与php哪个性能高
语法:PHP 的语法看起来就像没有经过精心设计一样,很随意。有的语法看似很方便(用点来连接字符串), 但是却为之后扩展造成了很多麻烦(点没法用于访问对象的成员), 再比如比较蛋疼的命名空间的语法。Python 相比之下要好一点,但是 Python2 和 Python3 直接存在着一些不兼容的语法变动。
编写 HTML 模版:PHP 可以非常方便地直接用来编写 HTML 模版,Python 需要借助其他的语言或库来实现。
包管理器:PHP 的包管理器(PEAR)和扩展管理器(PECL)恐怕根本没人用,这导致引入一个新依赖的成本很高,于是很多人倾向于自己造轮子而不是引入现成的库。Python 有统一的包管理器,虽然也有问题,但要比 PHP 好得多,引入库之后的命名空间管理也要比 PHP 好。
扩展和库:PHP 和 Python 都可以用 C 来编写扩展。相比之下 Python 可用的库要更多一点。
运行方式:PHP 运行方式比较单一(php-fpm, mod_php), Python 则可以以 fastCGI 运行,也可以自行监听端口来处理请求。
性能:因为 PHP 运行方式单一,opcode 缓存方案也比较成熟(APC, opcache),缓存 opcode 之后运行速度很快。Python 则可能需要更多地自行优化性能。
类型系统:PHP 和 Python 都是动态类型。PHP 对类型判别比较模糊,有很多陷阱,Python 则严格一些。
学习成本:PHP 和学习成本都不是很高。PHP 优势在于有比较完整的官方中文文档,而且 PHP 应用领域只有 Web, 所以需要学习的内容较少。Python 因为学习路线较多,不太容易找到适合自己的教程和资料。
社区:PHP 的资料遍地,但是高质量的中文社区较少,普遍对官方的新功能不是很关注。Python 则要好一点。
应用领域:PHP 仅在 Web 后端方面被使用,Python 应用领域更广泛一点,如果需要将逻辑移植到其他平台(如桌面), Python 要方便一点。
I. PHP7的性能,正式版会不会秒了其他脚本语言
> PHP7( phpng)的性能,正式版会不会秒了其他脚本语言?
和其他脚本语言比没有大多意义,因为应用场景不同。你不会用PHP像Python那样写系统管理脚本,也不会用PHP跑Rails。
更有意义的,是和其他PHP版本的纵向比较。具体结果可Google: http://lmgtfy.com/?q=phpng+benchmark
> 一直想学runy、python,node.js但是正式用到机会不多。
一定要正式用才能逼自己学吗?
Ruby都拼不对。
> 所以一直就看看语法就放弃了。一直没深入。
就算是学习语法,光看是没用的,更重要的是做。
至于深入,学习语言的第一步是写出没有语法错误、可以完成任务的程序。一步登天想第一天就100% best practice是不可能的,瘦子吃不成胖子。至于更加深入的,比如语言的内部实现,我觉得90%的情况下即使你不去了解,问题也不大。也有小概率的情况的确碰到坑了,那么认真去挖一下坑,收获也会很大。
> 没深入学,其实跟没学一样,几个月看看语法,扔了,过几个月又想学,又看看语法,又扔了。
没什入学不代表跟没学一样,能用、增加了知识就能体现学习的价值。比如我学Haskell,书就看了几章,很多很高深的概念都不懂,但这不影响我欣赏Haskell,也开阔了我在FP方面的知识面。
你就是懒,没恒心。
> 听说PHP7性能太牛B后,更让我懒得深入了。。
不是很理解这个逻辑。
> 但是好像不会点小众语言,就好像不上档次一样。
1. PHP不是小众语言。
2. “上档次”如何定义?能吃吗?
> 一直想深入学,一直被打消念头。怎么样才能破这个局呢?
1. (optional) 读点心灵鸡汤,打点鸡血
2. 静下心来学,写点程序练
J. 如何优化PHP性能
如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。
当然了,这个测试方法需要在十万级以上次执行,效果才明显。
其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。
任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同。静态内存是连续的,因为是在程序开始时就生成了,而实例申请的是离散的空间,所以当然没有静态方法快。
静态方法始终调用同一块内存,其缺点就是不能自动进行销毁,而是实例化可以销毁。