我有一个关于Symfony2性能的问题.

我已经在Ubuntu 11.04下使用Symfony2进行了几周的开发,Apache 2.2.17,PHP 5.3.5,APC 3.1.9,没有xDebug

在开发环境中,Symfony2工具栏上给出的时间从未超过70毫秒.

今天,我尝试在Windows 7环境中安装我的应用程序:Wampserver 2.2,PHP 5.3.8,Apache 2.2.21,APC 3.1.7,no xDebug

Windows环境中的计算机比ubuntu(SSD,Quad core等)上的计算机要好得多.

当我在开发环境中运行应用程序时,工具栏始终指示至少300毫秒.

所以,你知道它是如何可能的吗?

谢谢 !

编辑:找到关于主题的链接:http://fossplanet.com/f6/%5Bsymfony-users%5D-symfony2-slow-windows-xp-116465/

我也注意到了file_exists函数的问题(使用webgrind).

那么,有什么想法吗?

也许这个问题已经讨论过,但我很惊讶没有发现任何相关内容.

TL; DR;将realpath_cache_size设置为值> 1000

编辑2:在此PR中解决了问题:尝试将PHP.ini的realpath_cache_size设置为值> 1000
最近添加了symfony要求修复此问题:https://github.com/sensiolabs/SensioDistributionBundle/commit/cf0179711b24d84d4a29d71a4010540f4c990bd8

编辑:我刚看到这个答案:https://stackoverflow.com/a/17914570/980547
当我在PHP.ini(!)中设置realpath_cache_size = 4096k时,它在Windows上减少了4页的页面生成时间

老答案:

所以,我用webgrind做了两个比较:

在Windows(快速计算机)上,名为app_dev.PHP:

因此,您可以看到Web工具栏显示764ms时间生成(由于xDebug和分析而增加,但仍然相关).
Webgrind显示:

> 651调用file_exists()的时间为232ms(这很多!)
> 603次调用filemtime()(211ms)
> 230次调用UniversalClassLoader-> loadClass()(119ms)
> 230次调用UniversalClassLoader-> findFile()(38ms)

在linux(慢速计算机)上,app_dev.PHP:

总生成时间为298ms(比Windows上少两倍).

> 237次调用UniversalClassLoader-> findFile()(36ms =>少4次)
> 237次调用UniversalClassLoader-> loadClass()(20ms =>少2次)
> 623调用file_exists()(仅4ms !!!)
> 605调用filemtime()(仅4ms !!!)

问题似乎是file_exists()和filemtime(),它们在Windows上比在Linux上慢得多.在Windows上,PHP正在寻找具有file_exists,filemtime,loadClass或findFile的文件,这些文件占60%.这是一个已知的问题吗?

编辑:所以问题仅适用于开发环境,在生产中没有文件存在完成,因为所有内容都被缓存.

PHP5性能对比,Windows和Linux的更多相关文章

  1. Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项目(三)

    前两篇,分别讲述了入门和在Linux下部署,现在得说说如何在Linux下开发了。在Linux下开发,相对比在Mac下开发更灵活。我们先来看看构建基于Perfect的网站服务的编译方式如图通过引用基础库PerfectLib和数据链接,中间件模块创建你的网页文件,并用makefile打包生成你的网站动态库。所以如果你只是在Linux下构建项目,你只需要先创建好你的Handlers.swift即可。根据上面的方式我们开始在Linux下创建我们的Perfect项目。这里我在Perfect文件夹创建了一个Demo文

  2. 使用 Swift 语言编写 Android 应用入门

    Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码。做梦,虽然Swift编译器可以胜任在安卓设备上编译Swift代码并运行。这需要的不仅仅是用Swift标准库编写一个APP,更多的是你需要一些框架来搭建你的应用用户界面,以上这些Swift标准库不能提供。简单来说,构建在安卓设备上使用的Swiftstdlib需要libiconv和libicu。通过命令行执行以下命令:gitclonegit@github.com:SwiftAndroid/libiconv-libi

  3. Project Perfect让Swift在服务器端跑起来-Hi Linux(二)

    开篇写了一个简单的入门,今天想说说怎么让Perfect项目在Linux上运行。Swift开源后,苹果让Swift不仅在OSX/iOS上跑,更让Swift在Linux/Windows上跑。作为服务端的Perfect框架+RemObjectSilver,让Swift成为了一个全栈语言。Perfect由于是服务端的,让Perfect在Linux上跑是必然的事情。从第一篇文章中我们可以了解到Perfect由PerfectLib和PerfectServer组成。

  4. Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项

    前两篇,分别讲述了入门和在Linux下部署,现在得说说如何在Linux下开发了。在Linux下开发,相对比在Mac下开发更灵活。我们先来看看构建基于Perfect的网站服务的编译方式如图通过引用基础库PerfectLib和数据链接,中间件模块创建你的网页文件,并用makefile打包生成你的网站动态库。所以如果你只是在Linux下构建项目,你只需要先创建好你的Handlers.Swift即可。根据上面的方式我们开始在Linux下创建我们的Perfect项目。

  5. Swift for OS X编译Linux?

    我对其他平台上Swift的构建过程感到困惑.Swift是否允许我在OSX上构建Linux项目,或者我是否需要在Linux上专门使用Swift来构建我计划在那里使用的任何东西?我查看了documentation,但这个主题并不是很清楚……

  6. Swift 2和Linux / OS X的区别

    我正在尝试将一些基本的应用程序从OSX移植到Linux,但似乎Linux平台上缺少基本的东西.有些文件缺少什么?

  7. 将Trickle移植到android

    >如何告诉编译器链接我之前为android交叉编译的共享库,以便为android生成最终的可执行命令行应用程序.而且这甚至可以在Android上移植涓流?

  8. phonegap运行android – create命令失败,退出代码8 – linux

    我做了一些googleing但没有发现任何相关内容.任何帮助赞赏.请务必使用裸体vm进行尝试没有nodejs安装或依赖问题.基督教解决方法我刚刚面临同样的问题,问题是没有正确设置sdk工具的路径:请尝试以下方法:

  9. 在Android和Raspberry Pi 3 Linux之间建立Wifi-Direct连接

    我在这里遗漏了什么?谢谢.解决方法你在哪里:使用:

  10. 如何在.pro文件中为Android平台构建指定库?

    我正在尝试使用QtCreatorQT来构建在桌面和移动平台上运行的应用程序.为实现这一目标,我需要根据目标平台使用不同的预构建库.如何在.pro文件中指定它?该向导仅提供linux/mac/windows作为平台选择我试过了但是两个构建目标只有unix:!mac被执行/评估.所以我的问题是:如何在.pro文件中检测构建目标并相应地更改库定义?

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部