`

Github欢乐多,PHP神级代码引发吐槽热

阅读更多
概述:前日,github的PHP板块惊现一段能够提升70%运行效率的代码,引发了全世界众多网友的吐槽和调侃,“awesome!”、"well done!“、“PHP是世界第一语言!”平时不苟言笑,埋头苦干的程序员们充分发挥了其幽默的一面,github成为了欢乐的海洋。

前日,github的PHP板块惊现一段能够提升70%运行效率的代码,引发了全世界众多网友的吐槽和调侃,“awesome!”、“well done!”、“PHP是世界第一语言!”平时不苟言笑,埋头苦干的程序员们充分发挥了其幽默的一面,github成为了欢乐的海洋。

先来看看这一段神级的代码:

github上的欢乐

这段代码所做的就是一件事情:禁用PHP的垃圾回收器。然后网友测试在使用禁用PHP的垃圾回收器后带来的效果就是:

Before: Memory usage: 163.66MB (peak: 403.82MB), time: 246.25s
After: Memory usage: 163.34MB (peak: 350.36MB), time: 99.55s
某个PHP程序运行所需时间从246.25秒降低到99.55秒!
Before: Memory usage: 152.71MB (peak: 335.9MB), time: 195.99s
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上的欢乐

接着到来的smileytechguy便开始调侃了:“恩,没有注释,让我们把PHP的内核禁用了吧,我们也不会解释为什么这样做的。”

github上的欢乐

然后就开始一发不可收拾了:

有打酱油的:

github上的欢乐
github上的欢乐

有吐槽和调侃的:

github上的欢乐
github上的欢乐
github上的欢乐
 

光是说PHP是世界第一语言的就有几个国家的版本,话说只用几段代码就能提高70%效率,PHP世界第一语言当之无愧:

github上的欢乐
github上的欢乐
github上的欢乐

还有卖萌的:

github上的欢乐

PHP的垃圾回收机制成为大家的笑料,我们也很清楚简单的禁用PHP垃圾回收并不能解决内存溢出等问题,PHP未来如何处理好内存管理与运行效率之间的矛盾将是一件任重而道远的事情。

3
2
分享到:
评论
3 楼 cplusplusworker 2014-12-05  
哈哈 ,程序员太有爱了
2 楼 junfengcode 2014-12-04  
挺好玩的,长长的一页,mac君表示毫无压力
1 楼 netkiller.github.com 2014-12-04  
设计一种新语言,同时就设计了一个新缺陷。

相关推荐

    github开源键盘控制代码

    github开源键盘控制代码

    Github yolov5源代码

    Github yolov5源代码

    微信小程序demo:github博客(源代码+截图)

    微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信...

    github怎么看旧代码.zip

    怎么看github上的旧代码.zip

    PrettierGitHub利用prettier格式化GitHub评论中的代码

    标题 "PrettierGitHub利用prettier格式化GitHub评论中的代码" 暗示了这个项目是关于在GitHub上利用Prettier工具来自动格式化代码片段,使其在讨论和评论中更加整洁、易读。Prettier是一个流行的代码格式化器,支持...

    如何在github上传代码(图解)

    如何在github上传代码(图文解说) 用图文并茂的方式展示了在github上建立项目上传代码的全过程 简单,实用 waylau.com

    微软github提供的DXGI 示例代码

    微软github提供的DXGI 示例代码

    Octotree树形展示 Github 项目代码

    : Octotree是一款可以使你在github查看项目时可以清晰明了的看到项目的结构以及具体代码,使下载代码更具有目的性,减少不必要代码的下载的chrome扩展程序。 Octotree使用说明 1,用户可以在chrome应用商店在线安装...

    如何在github上下载开源代码

    gitHub是全球大型的开源社区之一,它提供了一个线上的代码托管服务,所以很多开源代码都会被托管到gitHub上。如果作为新时代的码农不知道这个就相当low了。 如果我们只是需要浏览或者下载源码的话,是不需要注册账户的...

    模仿GitHub前端界面html+css

    GitHub的导航栏和侧边栏可以使用Flexbox实现,而内容区域可能需要使用Grid来创建多列布局。 3. **响应式设计** - 考虑到不同设备的屏幕尺寸,需要采用媒体查询(`@media`)来实现响应式设计,使页面在手机、平板和...

    GitHub Desktop

    **GitHub Desktop** 是一款专为Mac用户设计的轻量级Git客户端,旨在简化与GitHub仓库的交互过程。这款应用提供了一个直观的图形用户界面,使得版本控制和协作变得更加容易,尤其适合那些对命令行操作不熟悉或者希望...

    Android的Github客户端的源代码

    Android的Github客户端源代码,适合用来学习

    Android代码-GHubber for 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源码.rar

    微信小程序-github  微信小程序的一个练手项目以及作为一个github... 总体来讲功能不算多,主要还是因为小程序很多的限制,使得web开发很多丰富多彩的功能无法用上,比如npm、markdowm解析之类的。  建议安装[wept]

    GitHub,代码管理的黄金标准!.zip

    GitHub适用于多种实际应用场景,如个人项目、团队项目、开源项目和企业级应用。在实际应用中,GitHub可以大大提高开发效率,并促进团队的协作。 总的来说,GitHub是一个强大的代码托管和管理平台,它可以帮助我们...

    Restormer源代码,github链接:https://github.com/swz30/Restormer

    Restormer源代码,github链接:https://github.com/swz30/Restormer

    本地代码提交到GitHub步骤.docx

    本文档通过文字加图片的形式详细介绍了如何将本地代码提交到GitHub上面,每一步都有详细的说明,以及对应的图片

    adobe.github.com, 开放源代码的Adobe中央集线器.zip

    adobe.github.com, 开放源代码的Adobe中央集线器 Adobe开放源代码服务展示了的Homepage主页,该中心是开放源码项目的中心中心。你可以通过Adobe存储库搜索 ,你可以专注于你真正热衷的。你是一位的网络开发者? 搜索...

    github上关于PyQt5的各种各样的demo,方便学习

    在"非常好的github上关于pyqt5的示例代码"中,你可以找到各种各样的应用实例,涵盖了PyQt5的基础到高级功能。以下是一些关键的知识点: 1. **安装PyQt5**:首先,确保你的Python环境已经安装了PyQt5。这可以通过在...

Global site tag (gtag.js) - Google Analytics