`

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提供了分布式版本控制和源代码管理(SCM)功能,此外还有一些特色功能,例如允许用户对项目进行跟踪、协调工作、管理任务和代码审查。 ### GitHub的主要特点包括: 1. **版本控制**:GitHub基于Git,一个...

    GitHub Gist:轻量级代码片段的终极指南

    **GitHub Gist** 允许用户创建包含多个文件的轻量级代码片段集合,这些文件可以采用不同的编程语言。每个 Gist 可以被克隆、跟踪,并且可以嵌入到网页中。Gist 旨在简化代码片段的分享过程,同时提供了一种简单的...

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

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

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

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

    go github(使用github)

    GitHub是一个基于Git的代码托管平台,它提供给开源项目及私有项目托管服务,同时支持版本控制和协作。自2008年4月10日正式发布以来,GitHub就以其独特的理念和强大的功能,迅速成为开发者社区中不可或缺的一部分。 ...

    如何在github上下载开源代码

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

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

    ### 如何在GitHub上传代码(图文详解) #### 创建GitHub账户 - **前提条件**:拥有一个可用的电子邮箱地址。 #### 安装Git客户端 - **下载与安装**:访问官方下载页面([http://git-scm.com/downloads]...

    模仿GitHub前端界面html+css

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

    github上收集的各种串口通信类_源代码库_demo代码(附有GitHub下载链接)

    这些代码可能来自于GitHub上的开源项目,这表明了代码的开放性和社区支持。开发者可以在GitHub上找到完整的项目,查看其他功能,参与讨论,或者提交问题和改进。 总的来说,这些资源对于想要在C++环境中实现RS422...

    GitHub Desktop

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

    bililili后台源代码完整版80M版本go语言 github java go语言

    【标题】"bililili后台源代码完整版80M版本go语言 github java go语言" 涉及到的是一个关于视频分享平台哔哩哔哩(B站)的后台源代码,该源代码以Go语言为主,同时也包含了Java的相关部分,并且在GitHub上发布。...

    Android的Github客户端的源代码

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

    教你如何用Github找开源项目(保姆级教程)

    教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你...

    GitHub新手入门详解-代码管理与协作必备

    内容概要:本文介绍了GitHub的基础知识和具体使用方法,首先解释了什么是GitHub以及为什么使用GitHub,接着讲述了GitHub的基本概念如仓库、提交、分支、拉取请求和克隆。随后介绍了如何创建和使用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保护分支的高级使用策略

    GitHub提供了分布式版本控制和源代码管理(SCM)功能,此外还有一些特色功能,例如允许用户对项目进行跟踪、协调工作、管理任务和代码审查。 ### GitHub的主要特点包括: 1. **版本控制**:GitHub基于Git,一个...

    利用git从github上拉取项目

    在IT行业中,版本控制工具Git是开发者们必不可少的利器,特别是在协作开发中,Git的强大功能使得团队能够高效地管理代码。本教程将详细介绍如何利用Git从GitHub上拉取项目,以便于你开始或参与开源项目。 首先,...

    微信小程序范例-github源码.rar

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

    github漫游指南,详细的介绍github的使用

    GitHub,作为全球最大的开源代码托管平台,是开发者们交流、协作与分享代码的重要场所。本指南将深入浅出地介绍GitHub的基本功能及其在软件开发中的应用,帮助你熟练掌握这一强大的工具。 ### 1. GitHub基础知识 -...

Global site tag (gtag.js) - Google Analytics