PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接、加载系统类库,创建 缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资源,随后的 请求就不必再次初始化资源了。
这种机制的差异带来的区别就是:
1、PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光。而Python/Ruby则需要依赖GC来回收内存,因此稍有不慎,还是会出现GC无法释放的内存泄露问题。
2、PHP每次请求都要初始化资源,这个开销非常大。所以尽管PHP解析器本身的运行速度是极快的,但是一旦使用复杂的PHP框架,那么由于需要 每次请求的时候初始化整个框架,性能的下降非常厉害,你用一个很复杂的PHP框架的结果就是整体性能被Ruby远远甩开。这也是为什么PHP社区这么多年 来,并不怎么倾向于使用框架的原因之一。
3、由于PHP这种每请求初始化资源的机制,也造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这 种限制使得PHP始终保持在一个比较简单的web语言上面,而正是这一点才是PHP得以成为互联网第一Web编程语言的原因,因此也未必就不好。
总之,PHP和Ruby的差异还是很大的,不适合放在一起比较,其实应该比较的是Ruby和Python才对
分享到:
相关推荐
标题 "cakephp-cakephp-1.3.8-0-g33afe21" 提供的信息表明,这是一个关于 CakePHP 框架的特定版本,版本号为 1.3.8,Git 修订版号是 0-g33afe21。这通常意味着这是一个开源项目,可能是一个源代码库的归档,或者是...
"cakephp-cakephp-2.0.0-dev-0-gbe96338" 是CakePHP框架的一个特定版本,它代表了该框架在2.0大版本中的一个开发分支。此版本在官方网站上可获取,确保了其官方支持和更新,为开发者提供了稳定且安全的开发环境。 ...
标题中的"cakephp-cakephp-2.0.0-beta-0-g402934f.zip"表明这是一个针对CakePHP 2.0.0 beta版本的压缩包,其中可能包含了框架的核心组件、示例代码以及相关的文档资料。 在描述中提到,CakePHP是“借鉴Raid on ...
- **自动路由**:CakePHP通过自动路由机制,将URL映射到相应的控制器和动作,简化了URL管理。 - ** Bake工具**:内置的Bake工具可以自动生成模型、控制器和视图文件,帮助开发者快速搭建基本的CRUD(创建、读取、...
cakephp-2.2.4-0 稳定版框架
CakePHP 3.0.1 发布,此版本是个 bug 修复版本 CakePHP 3.0.0 稳定版是向后不兼容版本,现在 CakePHP 最低要求: PHP 5.4.16 及其以上 mbstring 扩展 intl 扩展
CakePHP-Audit-Log-Plugin, 记录在CRUD操作期间对对象所做的更改 审计日志插件针对的日志插件 2 1. x. 为每个连接的模型创建一个审计历史。行为跟踪两个级别上的更改。 它获取完全水合对象的快照,在更改之后,更改...
CakePHP 3.x Bootstrap的帮助器 CakePHP 3.x Helpers以@Twitter Boostrap样式生成HTML:可用的Breadcrumbs , Flash , Form , Html , Modal , Navbar , Panel和Paginator帮助器! 如何... ? 安装 如果您想要...
There are two main ways to get a fresh copy of CakePHP. You can either download an archive copy (zip/tar.gz/tar.bz2) from the main website, or check out the code from the git repository. To download ...
wechat-cakephp-sdk wechat-cakephp-sdk 在wechat-php-sdk上修改适配cakephp, controller中有使用范例 项目地址: ###更新 Wechat.php中增加适配CakePHP的缓存配置,也可以根据实际情况在WechatCache中改为其他的缓存...
CakePHP的CakeSoftDelete插件 目的 这个Cakephp插件使您可以使您的模型可软删除。 当软删除一个实体时,实际上并没有从数据库中删除它。 而是在记录上设置了deleted时间戳。 要求 该插件是为cakephp 3.x开发的。 ...
/usr/local/zend/var/zray/extensions/CakePHP/zray.php /usr/local/zend/var/zray/extensions/CakePHP/logo.png 您可以将文件复制到该位置,也可以将此存储库克隆到zray扩展目录中。 在Zend Server 8.5中安装 以...
cakephp2.0-metronic-theme 如何设置应用程序? 使用以下命令在apache webroot目录中克隆代码。 git 克隆 创建数据库并设置连接 Config/database.php 运行以下命令以使用 composer > composer install 安装 ...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
cakephp-jwt-auth, 使用JSON网络令牌进行身份验证的CakePHP插件 CakePHP认证插件 包含AuthComponent类认证的插件,用于使用 JSON网络令牌进行身份验证。 你可以在这里详细阅读关于JSON网络令牌规范的详细说明。要求...
示例CakePHP代码库包含遵循规范和API的真实示例(CRUD,身份验证...cd cakephp-realworld-example-app 使用composer安装所有依赖项 composer install 在config/app.php文件中配置数据库设置(请参阅:数据源/默认) v
此外,CakePHP还提供内置的验证机制,确保数据的安全性和一致性,而快速灵活的模板机制允许开发者使用PHP语法和各种助手(Helper)来创建丰富的用户界面。 在AJAX、JavaScript、HTML表单等前端技术的支持上,...
### CakePHP系列(二)——博客(Blog)案例知识点解析 #### 一、知识点概览 本案例聚焦于使用CakePHP框架开发一个简单的博客系统,着重介绍了如何利用CakePHP的特性来实现博客分类功能。主要知识点包括:创建迁移文件...
### CakePHP 1.2 快查表知识点详解 #### 一、自定义查询类型 (CustomFindTypes) 在CakePHP 1.2中,提供了多种自定义查询类型,包括: - **all**: 返回所有匹配记录。 - **first**: 返回第一条匹配记录。 - **...
对于PHP开发者来说,CakePHP是一个流行和强大的MVC(模型-视图-控制器)框架,它简化了开发流程并提供了丰富的功能。本文将深入探讨在CakePHP 3中实现用户管理的相关知识点。 首先,`cakephp3-user-management`项目...