概述:前日,github的PHP板块惊现一段能够提升70%运行效率的代码,引发了全世界众多网友的吐槽和调侃,“awesome!”、"well done!“、“PHP是世界第一语言!”平时不苟言笑,埋头苦干的程序员们充分发挥了其幽默的一面,github成为了欢乐的海洋。
前日,github的PHP板块惊现一段能够提升70%运行效率的代码,引发了全世界众多网友的吐槽和调侃,“awesome!”、“well done!”、“PHP是世界第一语言!”平时不苟言笑,埋头苦干的程序员们充分发挥了其幽默的一面,github成为了欢乐的海洋。
先来看看这一段神级的代码:
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-1.png)
这段代码所做的就是一件事情:禁用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表达了对这种处理方式的惊讶以及不明白为什么要这么做,并客观评价了这个处理方式看起来并不好:
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-2.jpg)
接着到来的smileytechguy便开始调侃了:“恩,没有注释,让我们把PHP的内核禁用了吧,我们也不会解释为什么这样做的。”
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-3.jpg)
然后就开始一发不可收拾了:
有打酱油的:
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-4.jpg)
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-5.jpg)
有吐槽和调侃的:
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-6.jpg)
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-7.jpg)
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-8.jpg)
光是说PHP是世界第一语言的就有几个国家的版本,话说只用几段代码就能提高70%效率,PHP世界第一语言当之无愧:
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-9.jpg)
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-10.jpg)
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-11.jpg)
还有卖萌的:
![github上的欢乐](http://image.evget.com/images/article/2014/githubphp1204-12.jpg)
PHP的垃圾回收机制成为大家的笑料,我们也很清楚简单的禁用PHP垃圾回收并不能解决内存溢出等问题,PHP未来如何处理好内存管理与运行效率之间的矛盾将是一件任重而道远的事情。
相关推荐
github开源键盘控制代码
Github yolov5源代码
微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信...
怎么看github上的旧代码.zip
标题 "PrettierGitHub利用prettier格式化GitHub评论中的代码" 暗示了这个项目是关于在GitHub上利用Prettier工具来自动格式化代码片段,使其在讨论和评论中更加整洁、易读。Prettier是一个流行的代码格式化器,支持...
如何在github上传代码(图文解说) 用图文并茂的方式展示了在github上建立项目上传代码的全过程 简单,实用 waylau.com
微软github提供的DXGI 示例代码
: Octotree是一款可以使你在github查看项目时可以清晰明了的看到项目的结构以及具体代码,使下载代码更具有目的性,减少不必要代码的下载的chrome扩展程序。 Octotree使用说明 1,用户可以在chrome应用商店在线安装...
gitHub是全球大型的开源社区之一,它提供了一个线上的代码托管服务,所以很多开源代码都会被托管到gitHub上。如果作为新时代的码农不知道这个就相当low了。 如果我们只是需要浏览或者下载源码的话,是不需要注册账户的...
GitHub的导航栏和侧边栏可以使用Flexbox实现,而内容区域可能需要使用Grid来创建多列布局。 3. **响应式设计** - 考虑到不同设备的屏幕尺寸,需要采用媒体查询(`@media`)来实现响应式设计,使页面在手机、平板和...
**GitHub Desktop** 是一款专为Mac用户设计的轻量级Git客户端,旨在简化与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 ...
GitHub 是全球最大的开源软件托管平台,它提供了代码版本控制、协同开发、问题追踪等一系列功能,极大地推动了软件开发的协作与创新。GitHub 客户端则是为了方便开发者在本地与 GitHub 服务器进行交互而设计的应用...
微信小程序-github 微信小程序的一个练手项目以及作为一个github... 总体来讲功能不算多,主要还是因为小程序很多的限制,使得web开发很多丰富多彩的功能无法用上,比如npm、markdowm解析之类的。 建议安装[wept]
GitHub适用于多种实际应用场景,如个人项目、团队项目、开源项目和企业级应用。在实际应用中,GitHub可以大大提高开发效率,并促进团队的协作。 总的来说,GitHub是一个强大的代码托管和管理平台,它可以帮助我们...
Restormer源代码,github链接:https://github.com/swz30/Restormer
本文档通过文字加图片的形式详细介绍了如何将本地代码提交到GitHub上面,每一步都有详细的说明,以及对应的图片
adobe.github.com, 开放源代码的Adobe中央集线器 Adobe开放源代码服务展示了的Homepage主页,该中心是开放源码项目的中心中心。你可以通过Adobe存储库搜索 ,你可以专注于你真正热衷的。你是一位的网络开发者? 搜索...
在"非常好的github上关于pyqt5的示例代码"中,你可以找到各种各样的应用实例,涵盖了PyQt5的基础到高级功能。以下是一些关键的知识点: 1. **安装PyQt5**:首先,确保你的Python环境已经安装了PyQt5。这可以通过在...