论坛首页 编程语言技术论坛

PHP框架的繁荣是正确的发展方向吗?

浏览 246922 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-02-01  
RESTful Web Services !用什么做web端,没有根本性的区别吧~
0 请登录后投票
   发表时间:2009-02-02  
当使用框架时,PHP每次运行都要重新建立运行环境从而导致性能低下,这个问题可以通过opcode缓存解决,比如apc,xcache
0 请登录后投票
   发表时间:2009-02-02   最后修改:2009-02-02
niyunjiu 写道
当使用框架时,PHP每次运行都要重新建立运行环境从而导致性能低下,这个问题可以通过opcode缓存解决,比如apc,xcache

建立运行环境不仅仅指代码编译,还有编译后的代码运行时建立的逻辑环境,比如加载配置信息,比如建立数据库连接。
0 请登录后投票
   发表时间:2009-02-02  
论坛的讨论就没有必要搞什么PHP pk Rails了,特别是pk性能更加无聊。

我们要讨论的内容应该是:

1、PHP的优点和限制是什么?
2、PHP的框架是否符合PHP应该的发展方向
3、对于PHP框架来说,如何最大限度发挥PHP的优点,又如何尽量规避PHP的限制
0 请登录后投票
   发表时间:2009-02-02  
icewubin 写道
niyunjiu 写道
当使用框架时,PHP每次运行都要重新建立运行环境从而导致性能低下,这个问题可以通过opcode缓存解决,比如apc,xcache

建立运行环境不仅仅指代码编译,还有编译后的代码运行时建立的逻辑环境,比如加载配置信息,比如建立数据库连接。

pdo的复用池应该是可用的,而且数据库连接是否复用本来就没个定论,像python很容易就能实现线程池,但django愣是每执行一次request,连一次,关一次
0 请登录后投票
   发表时间:2009-02-02   最后修改:2009-02-02
闲云无心 写道
icewubin 写道
niyunjiu 写道
当使用框架时,PHP每次运行都要重新建立运行环境从而导致性能低下,这个问题可以通过opcode缓存解决,比如apc,xcache

建立运行环境不仅仅指代码编译,还有编译后的代码运行时建立的逻辑环境,比如加载配置信息,比如建立数据库连接。

pdo的复用池应该是可用的,而且数据库连接是否复用本来就没个定论,像python很容易就能实现线程池,但django愣是每执行一次request,连一次,关一次

在这里连接池仅仅是个例子,逻辑环境的建立的开销,可大可小,比如某个orm框架,建立整个逻辑环境需要消耗的CPU可能就和这个框架的实现方式、复杂度都有关系,这些开销是不可能通过opcode解决的。

凡事具有两面性,如果PHP能够解决类似问题,那PHP的一大优点
引用
稳定可靠,几乎不需要关心内存泄漏问题

也会随着消失的。

而且,随着各种弥补PHP限制的框架和技术的出现,本身也在增加PHP的复杂度和学习成本。

0 请登录后投票
   发表时间:2009-02-02  
闲云无心 写道
icewubin 写道
niyunjiu 写道
当使用框架时,PHP每次运行都要重新建立运行环境从而导致性能低下,这个问题可以通过opcode缓存解决,比如apc,xcache

建立运行环境不仅仅指代码编译,还有编译后的代码运行时建立的逻辑环境,比如加载配置信息,比如建立数据库连接。

pdo的复用池应该是可用的,而且数据库连接是否复用本来就没个定论,像python很容易就能实现线程池,但django愣是每执行一次request,连一次,关一次


你说的是错的。django是以SGCI方式运行的时候,只需要连接一次,然后就不关闭了,该进程始终持有该连接。
0 请登录后投票
   发表时间:2009-02-02  
robbin 写道
闲云无心 写道
icewubin 写道
niyunjiu 写道
当使用框架时,PHP每次运行都要重新建立运行环境从而导致性能低下,这个问题可以通过opcode缓存解决,比如apc,xcache

建立运行环境不仅仅指代码编译,还有编译后的代码运行时建立的逻辑环境,比如加载配置信息,比如建立数据库连接。

pdo的复用池应该是可用的,而且数据库连接是否复用本来就没个定论,像python很容易就能实现线程池,但django愣是每执行一次request,连一次,关一次


你说的是错的。django是以SGCI方式运行的时候,只需要连接一次,然后就不关闭了,该进程始终持有该连接。


db连接django会自己关掉的

# Register an event that closes the database connection
# when a Django request is finished.
def close_connection(**kwargs):
    connection.close()
signals.request_finished.connect(close_connection)
0 请登录后投票
   发表时间:2009-02-02   最后修改:2009-02-02
脚本语言发展到最后开发方式和性能上的差别都不会太大, 通常你喜欢一个东西,也肯定容忍了它的某些缺点,争论或说服别人都毫无疑义。用什么框架和语言都是冷暖自知的事情,做出来东西最重要。如果 robbin 没有用 rails 开发出 javaeye ,他推广 rails 的信服力就差很多了。

今天看到“猪猪多多”在饭否发的一句话:
The world needs dreamers and the world needs doers. But above all, the world needs dreamers who do. -Sarah Ban Breathnach
0 请登录后投票
   发表时间:2009-02-02  
php的运行机制容易实现SNA,而java不容易实现SNA,这是否是php的一个优点呢?
当然这个不是性能了,而是扩展性了
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics