概述:前日,github的PHP板块惊现一段能够提升70%运行效率的代码,引发了全世界众多网友的吐槽和调侃,“awesome!”、"well done!“、“PHP是世界第一语言!”平时不苟言笑,埋头苦干的程序员们充分发挥了其幽默的一面,github成为了欢乐的海洋。
前日,github的PHP板块惊现一段能够提升70%运行效率的代码,引发了全世界众多网友的吐槽和调侃,“awesome!”、“well done!”、“PHP是世界第一语言!”平时不苟言笑,埋头苦干的程序员们充分发挥了其幽默的一面,github成为了欢乐的海洋。
先来看看这一段神级的代码:
这段代码所做的就是一件事情:禁用PHP的垃圾回收器。然后网友测试在使用禁用PHP的垃圾回收器后带来的效果就是:
After: Memory usage: 163.34MB (peak: 350.36MB), time: 99.55s
某个PHP程序运行所需时间从246.25秒降低到99.55秒!
After: Memory usage: 164MB (peak: 308.02MB), time: 104.06s
某个PHP程序运行所需时间从195.99秒降低到104.06秒!
总的说来,就是禁用垃圾回收器可以提升PHP70%运行效率。
既然,PHP的垃圾回收如此不靠谱,那么它以前设计的初衷是什么呢?
因为在C/C++中,内存管理是一件很麻烦的事情,内存的使用和释放都需要程序员编写程序手动操作,如果有所遗漏,就可能造成资源浪费甚至内存泄露。因此PHP在设计的时候为了规避这个问题,引入了垃圾回收器来用于自动释放无用对象的内存。
值得一提的是PHP在运行循环回收算法的时候,会产生额外的时间消耗。虽然在较小的项目中,这种额外消耗微乎其微,但是当运行大项目时,由于同时启动了多个循环回收的线程,这种消耗将会产生很大的影响,最直观的表现就是程序运行时间变长了。
禁用PHP的垃圾回收,是提高了程序运行效率的最简单粗暴的方式。这就如同腿脚受伤了,最简单的方式就是截肢一样。
当该神级代码一公布,github的程序员们便乐开了花:
首先到来的homm表达了对这种处理方式的惊讶以及不明白为什么要这么做,并客观评价了这个处理方式看起来并不好:
接着到来的smileytechguy便开始调侃了:“恩,没有注释,让我们把PHP的内核禁用了吧,我们也不会解释为什么这样做的。”
然后就开始一发不可收拾了:
有打酱油的:
有吐槽和调侃的:
光是说PHP是世界第一语言的就有几个国家的版本,话说只用几段代码就能提高70%效率,PHP世界第一语言当之无愧:
还有卖萌的:
PHP的垃圾回收机制成为大家的笑料,我们也很清楚简单的禁用PHP垃圾回收并不能解决内存溢出等问题,PHP未来如何处理好内存管理与运行效率之间的矛盾将是一件任重而道远的事情。
相关推荐
github开源键盘控制代码
Github yolov5源代码
微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信...
我在GitHub上创建的本地仓库代码
怎么看github上的旧代码.zip
微软github提供的DXGI 示例代码
多分类,FCN代码,cuda8.0、cudnn5.1、TensorFlow1.4.0,资源包含了对github代码的修改
如何在github上传代码(图文解说) 用图文并茂的方式展示了在github上建立项目上传代码的全过程 简单,实用 waylau.com
: Octotree是一款可以使你在github查看项目时可以清晰明了的看到项目的结构以及具体代码,使下载代码更具有目的性,减少不必要代码的下载的chrome扩展程序。 Octotree使用说明 1,用户可以在chrome应用商店在线安装...
gitHub是全球大型的开源社区之一,它提供了一个线上的代码托管服务,所以很多开源代码都会被托管到gitHub上。如果作为新时代的码农不知道这个就相当low了。 如果我们只是需要浏览或者下载源码的话,是不需要注册账户的...
该文章详细说明了从github的仓库创建到使用gitbash上传,更新代码的流程;及搭建环境过程中常遇到的问题的解决方案,第一次搭建常遇到的问题: 使用git clone xxx 指令下载仓库到本地是可能遇到如下问题: fatal: ...
Github代码行计数器(GLOC)。 从github项目页面计数一个项目的代码行数。
Prettier GitHub 利用 `prettier`格式化GitHub评论中的代码
Flask Web开发_Github源代码
Android的Github客户端源代码,适合用来学习
GHubber (GitHub mobile client) Yet another Mobile :iphone: client for GitHub powered on react-native. How to get alpha version :atom: Android The app is an alpha and the easiest way to ...
A android app client for Github. 效果图 关于项目 Git.NB现以升级到2.0,功能大有升级,UI大改版本。各种有趣的操作,欢迎下载代码试完。 如果发现有任何问题和建议,随时欢迎Email或者开Issues, 如果有版权问题...
Chrome插件格式化显示GIthub代码Octotree
GitHub 客户端,实现项目工程代码托管
微信小程序-github 微信小程序的一个练手项目以及作为一个github... 总体来讲功能不算多,主要还是因为小程序很多的限制,使得web开发很多丰富多彩的功能无法用上,比如npm、markdowm解析之类的。 建议安装[wept]