首页 开发编程 正文

php怎么去维护(为什么facebook的hiphop把php转换成了C++而不是把php改成编译型的语言,直接执行编译后的文件不是更快吗)

通过虚拟机即时编译的方式来处理它们服务器上大量的php代码,他们的主要目的是要处理那一大堆正在成千上万台服务器上跑着的php代码,最好的办法就是现在他们采用的虚拟机即时编译的方法。这两个要求目前在PHP的架构下较难实现。至少我认为Go作为后端语言更可能取代PHP。Python是后端编程的最流行选择之一。Facebook在最初的日子里就...

为什么facebook的hiphop把php转换成了C++而不是把php改成编译型的语言,直接执行编译后的文件不是更快吗?

hippop设计的初衷不是要转换源代码,而是要节省服务器资源。

开发来开发去,他们发现一个意想不到的收获,就是这东西可以提升程序的执行性能,于是深挖了下去,把hippop完善起来。

2013年,他们发现这条路子不对,就废弃了hiphop方式,转而改用hhvm,通过虚拟机即时编译的方式来处理它们服务器上大量的php代码,提升服务器的执行性能。

至于为什么不把php改为编译型语言,这个问题很有意思。如果要用编译型语言,有很多现成的编译型语言可以直接用啊,没必要去改一个过来。他们的主要目的是要处理那一大堆正在成千上万台服务器上跑着的php代码,让它们跑快些,占用服务器的资源少一些,不然的话,性能倒是一回事,另外,项目一扩张,就要添置更多的硬件,就要更多人更多精力来维护,这样滚雪球下去管理上的问题会很恐怖。

如果把php改成编译型语言,其实就等于开发了一门新的语言。那旧的代码怎么办?退一步想,他们旧的代码继续维持用旧的方式运行,新项目就用新的语言来开发。可是开发新的语言需要时间,开发出来后,还需要开发大量的类库,函数库,否则这语言就没实际用处。就像c#开发出来了,还要有.net类库做后盾。这么做成本也太高了。

相对而言,用hiphop把php转成c++,利用c++已有的资源是可行的。而且不用改动旧的代码。但是这么做也有麻烦。编译的动作比较耗时,如果有某个地方php代码升级了,或者修复漏洞,或者因为其它原因做了改动,就得重新编译。这还不考虑跨平台等其他因素。

那么,最好的办法就是现在他们采用的虚拟机即时编译的方法。只要做好虚拟机就行了。

php使用lua+redis实现限流,计数器模式,令牌桶模式?

协程间可共享全局变量,同时要维护各自的调用栈结构;这两个要求目前在PHP的架构下较难实现。当然,非阻塞IO是可以通过libevent扩展实现,比如使用laruence的YAR。

python会取代php吗?

先给个人意见,Python不会取代PHP,至少我认为Go作为后端语言更可能取代PHP。

Python:Python是后端编程的最流行选择之一。它是相对较新的并且具有大量的库支持。PHP:PHP进入市场已有很长时间,并且直到今天仍被广泛使用。例如,Facebook在最初的日子里就有大量的后端使用PHP开发。PHP是一个优秀的后端编程语言

PHP最重要是作为后端优秀框架的编程语言而存在,那我们到底要学习哪个后端框架?有这么多新的编程语言提供了如此多的功能、库和框架,如何真正决定要学习哪种Web框架?我们将尝试比较两种最受欢迎的后端编程语言——Python和PHP。

在进行比较之前,让我们首先列出比较点,这将大大影响我们对Web框架的选择:

易于学习:这可以说是决定使用哪种Web框架的最重要参数之一。如果编程语言很难学习,那么花时间在上面就没有意义了。今天,出于所有实际目的,开发人员时间比执行时间更重要。社区支持:让我们面对现实吧-我们所有人都在bug方面挣扎,我们在编写程序时都遇到问题,我们都在StackOverflow和其他论坛上在线寻求支持。如果特定的编程语言不为人所知,并且几乎没有社区支持,那么最好不要使用它。文档:就像社区支持一样,至关重要的是,编程语言/框架必须有足够的文档供开发人员学习和理解细微差别。库支持:如果广泛使用编程语言,将会有更多的开发人员为特定语言开发库。结果,开发变得更加容易。速度:服务器端应用程序可能需要高容错能力和低延迟。因此,重要的是要查看哪种语言在执行时间上更快。调试:编程语言的选择还应取决于该语言可用的可用调试工具。缺少良好的调试工具意味着开发人员将花费更多的时间进行调试,这实际上并不是最有效地利用时间。PHP与Python各项比较

毫无疑问,Python更容易学习。Python是一种通用的编程语言,可以很快被使用。实际上,Python非常容易上手,以至于大多数初学者的编程课程现在都使用Python编程语言来教授编程的基础知识。与其他编程语言相比,Python程序更短,更易于编写,因此,它已成为许多应用程序的首选。与用其他编程语言编写的相同代码相比,语法简单得多,并且代码极易读。

另一方面,PHP并不是要成为通用语言。它是专门为Web应用程序设计的,该Web应用程序肯定比简单的独立程序复杂得多。结果,与学习Python相比,学习PHP花费了更多时间。

对于社区支持而言,Python和PHP都具有出色的社区支持。PHP进入市场已经有一段时间了,特别是对于开发Web应用程序。所以有一个庞大的PHP开发人员社区随时准备提供支持。

Python社区支持非常出色,这很明显可以看得出来,如机器学习框架Tensorflow,Web框架Django、flask等,从这个角度看Python和PHP没有一个是明显的赢家。

PHP 5.x版本的运行速度很慢,需要花费大量时间。但是,新版本的PHP 7.x极其快速,几乎比典型的Python程序快3倍。在性能关键型应用程序中,速度通常成为重要因素。例如,在每天获得一百万次点击的核心银行系统中,延迟3次可能会对整体系统性能产生重大影响。因此,谈论速度,PHP远远胜过Python。

但是,必须注意的是,对于大多数简单的应用程序,规模很小,因此没有太多明显的时间滞后。例如,出于所有实际目的,假设应用程序对延迟不是至关重要的,则10毫秒与30毫秒相差无几。

而Python提供了一个功能强大的调试器,称为PDB(Python调试器)。PDB有据可查,易于使用,即使对于初学者也是如此。另一方面,PHP提供XDebug包进行调试。PDB和XDebug都提供了最常用的调试功能-断点,堆栈,路径映射等。Python和PHP两者从这个角度看其实都很相似。

总体而言,如果你选择后端语言,可能Go是未来更好的选择,毕竟速度和生态摆在那里,如果想学得更多,可以兼顾学习Python,因为Python目前生态环境很好,无论是日常快速开发还是机器学习工程都很不错。

很多人都在反映,PHP现在很难找到工作,真的是这样吗?

10年PHP开发经验曾经觉得没有未来找不到工作只能去干外卖或者干私活了。

2020年被裁员了,之前就感觉到大环境变差了,中间也有几次出去面试的机会都不是很理想。那会也关注到很多关于35岁危机的文章,常常也在扪心自问:

1、35岁以后真的找不到工作了吗?

2、我现在的技术水平和刚毕业的学生有多大区别?有没有自己的特色?

3、如果找不到工作,现状能维持多久?

经过一年多的探索,从转型保险代理人到重回技术领域逼着自己不断的学习终于有所顿悟:

同样35岁我们为啥吗变得没有竞争力了,其实还要从自身找原因,就PHP而言确实市场的需求变小了,但是同样我们不是初级程序员了就竞争力而言还是要大于初级从业者,那么如果没有自己的特色只会基础的CURD?公平而言你为啥比别人贵?所以还是要多看书提升自己

有一个比较老旧的项目,PHP4,面向过程的,现在要重构一下,大家有啥建议没?

首先,目标要明确,这样的老项目沿用到现在才重构,一定有它的原因,得搞清楚诉求是什么,如果只是单纯的想用php7,因为php4早就不维护了,那建议楼主直接试试把项目放到php7的环境里运行,说不定有惊喜

其次,这么老的项目“重构”,成本方面不如重做了。

最后,理清楚业务逻辑和数据字典

祝好运

本文转载自互联网,如有侵权,联系删除