实际使ob娱乐下载用symfony太慢吗?
这篇文章的标题可能是«的指南(不)响应速度基准和框架比较»。我们经常看到框架基准出现在网络上的某个地方,比较symfony和其他框架,在PHP或其他语言。ob娱乐下载其中一些是«symfony的结论需要更多的时间比其他框架显示“helloob娱乐下载, world”,这使得它不适合实际的web应用程序»。评价这些产品都是混合,从完整的巨魔有建设性的讨论。但无论在这个问题上,问题总是重新出现,似乎人们重新发明轮子每次看到这样的结论。反驳这种声明需要一些思考,所以准备一些阅读。
ob娱乐下载Symfony不是缓慢的意义“不优化”
如果一些基准测试表明,symfony是慢,跳的结论symfob娱乐下载ony不是优化是一个大错误。我想说,把这个快捷方式的人无论如何比我们聪明,或者他们不知道什么是分析,他们不敢看symfony的代码,他们不能做高效的代码之间的区别和一瓶啤酒。ob娱乐下载
symfony的编码实践开发者来自许多web应用ob娱乐下载程序开发的经验在几乎十年了。我们有一个很准确的代码是缓慢的和哪些代码是快,因为性能一直是我们的一个客户的主要需求。我们测试了很多实现,我们读了很多关于当前的最佳实践,我们试图把最好的我们到目前为止所学的symfony的代码。ob娱乐下载例如,你不会在symfony找到这段代码:ob娱乐下载
($ i = 0;$ i < count ($ my_array);美元我+ +)
相反,我们总是试图做的事:
(i = 0美元,美元数= count ($ my_array);我<美元计数;美元我+ +)
这是因为我们知道它有影响。
我们怎么知道呢?因为我们测量。我们大量使用分析工具,在我们自己的应用程序以及symfony本身。ob娱乐下载事实上,如果你观察symfony的代码,你可以看到有很多ob娱乐下载优化已经到位。如果你使用分析工具在symfony应用程序中,您可能会发现没有办法明显优化symfony没有ob娱乐下载穿过它的特性。
当然,还有许多小的优化成为可能。如果你找到一些,请开一张票在symfony trac系统中,我们会将它添加到树干公元前只要不ob娱乐下载打破或要求第三方组件。
ob娱乐下载Symfony的速度是一种选择
如果sob娱乐下载ymfony是实现(或者我们认为),那么它的速度就是个人速度之和它包含的所有特性。或者,换句话说,Symfony的速度是一系列的选择,我ob娱乐下载们的结果决定是否应该或不应该一个特征的核心。
这些选择并不容易,你可以很容易地讨论它们。ob娱乐下载Symfony的结果从一个视觉的完美工具开发人员,基于我们的经验。例如,我们决定输出逃离应该包含在默认情况下,这个配置应该写在YAML最好。这是因为输出逃离保护应用程序跨站点脚本(XSS)攻击,因为YAML文件比XML更容易读和写。我能说出类似的争论安全、验证多个环境,symfony的其他特性。ob娱乐下载我们没有将它们添加到symfony,因为它很ob娱乐下载有趣。我们加入了他们,因为你需要他们在几乎每一个web应用程序。
注意,即使这些特性存在在symfony中,你总是可以禁用它们,因为伟大的框架的可配置ob娱乐下载性和能力覆盖其类。
对于每一个选择,我们小心地重功能和易于开发的好处,和罚款的性能。ob娱乐下载Symfony将很多功能激活默认情况下(当你比较其他框架),因为我们认为开发成本比托管成本更重要。很容易添加一个新的服务器来提高网站的性能,很难添加一个新的开发人员一个现有的项目,让它完成得更快。
基准测试的速度“Hello, world”脚本毫无意义
所以一个框架有一定的速度,因为它有一个特定的功能默认打包。如果你用这个想法相反,你可以得出这样的结论:地球上跑得最快的框架是没有框架。一些非常知名的开发商实际上捍卫这个观点:使用纯PHP将使您的应用程序速度比使用一个框架。然而,实际上没有一个框架基准比较赤裸的语言框架。这是因为它没有意义。如果框架存在,它不是对速度的目的,它是为了便于编程,减少一行代码的成本。这个成本不仅包括时间写,而且时间去测试它,重构,部署它,主机,保持多年。
它没有更多的意义比较框架不提出相同数量的特性。下次当你看到symfony相比,另一个“heob娱乐下载llo, world”框架,试图检查其他框架i18n,输出逃离,Ajax帮手,验证和ORM打开。它可能不是这样,就像比较梨和苹果。
你多久看到页面显示“hello, world”在现实生活中web应用程序?我从没见过一个。现在Web应用程序依赖于动态页面,与大量的代码处理社区致力于髋关节功能,mashup, Ajax和丰富的UI。令人惊奇的是,这样的页面没有基准测试框架。此外,即使你有一个粗略的两个框架之间的差异表现在一个复杂的页面,你需要平衡这一结果和必要的时间来发展与每个框架的这个页面。
所以最好的方式来显示“hello, world”的性能可能是:
< ?php echo“hello, world”? >
如果您的应用程序减少了,很明显,你不需要一个框架。否则,你需要你的决定基于另一种类型的基准。
一个框架的速度不是最重要的论点
挑衅地说,前一节的结论是:“故意symfony缓慢”。ob娱乐下载我们甚至可以保护,因为一个框架的原始速度只计算一个小的应用程序的性能被最终用户,作为一个参数之间的很多其他开发工具的选择。
用户感知的性能取决于原始速度框架的用户在后台,还有许多其他因素。资源的数量(图像、CSS、脚本等)对于一个给定的下载页面下载时间会影响显著。用户的带宽和可能的并发请求数量经常在互联网通信的最重要的瓶颈。数据库查询的数量和质量所涉及的数据库的指数化的速度也会影响性能。主机使用的组件(数据库供应商,操作码缓存、磁盘、网络接口、等等)也是一个重要因素。这些只是例子,但是关键是正确配置平台,使用CDN,高性能组件,仔细调整和监控,对用户的感觉更重要的服务器端脚本的速度比原始速度。
和两个框架之间选择可比速度,公司将考虑其他因素做出一个好的决定。文档的质量,这是成正比的数量好开发者提欧宝官网下载app供一个框架,是决定性的。开发商的成本和可用性对于一个给定的语言,例如,推动许多决胜局放弃Ruby on Rails或Django PHP开发框架。主机和监控这些解决方案的困难也是一个平衡的关键因素,因为快cgi不是mod_php一样稳定。此外,客户将不得不维持他们对你开发的应用程序,他们需要开发人员。如果你选择不广泛的解决方案,你可能松散你的一些客户。
让我们完成说,在大多数情况下,symfony并不与RoR或Django。ob娱乐下载之间的选择往往是symfony、。net和Java Stob娱乐下载ruts,因为这些是真正的替代专业的发展。
结论
解雇symfony因为ob娱乐下载“hello, world”测试的速度不如FooBar框架是一个错误。原始速度的关键因素不是专业人士。成本的关键因素。和开发成本,托管和维护应用程序的symfony小于其他解决方案。ob娱乐下载这是不真实的,如果你需要的是一个简单的CMS,一个博客,或者一个脚本,它说:“你好,世界”。但在这种情况下,你不需要一个框架。
记录,如果你需要的是一个可靠,功能齐全,支持,主要采用编码的、免费的、可扩展的框架,然后symfony。ob娱乐下载当然,symfony有ob娱乐下载违约;它仍然是年轻的,不是由十亿美元的公司。但“hello, world”速度不是违约,你应该过多的关注。此外,symfonob娱乐下载y尽可能优化,它提供了。
如果你需要第二个观点,因为你不能相信一个框架的创造者说关于自己的框架,或许你可以听听其他公司选择symfony是谁干的。ob娱乐下载雅虎symfonyob娱乐下载 2000万用户应用程序,我打赌他们测量的速度“hello, world”做决定之前和其他因素。许多其他的大公司选择了symfony框ob娱乐下载架对于他们的业务至关重要的应用程序,他们继续信任我们。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
我选择在Symfony的基础ob娱乐下载功能,稳定性和可靠性。它比速度更重要。
我认为Symfoob娱乐下载ny是第一个PHP解决地址我们的客户的需求。
我们试图通过使用它。业务案例是最好的可靠性的证据。
我认为广泛的PHP社区比java更少的“需求欧宝体育平台怎么样导向”的人会消耗你的能量弗朗索瓦。
谢谢你symfony,弗朗索ob娱乐下载瓦!
我为我以前的公司已经开发了一个syob娱乐下载mfony应用。现在他们正在运行一个可靠的和易于维护的业务解决方案。和没有人抱怨速度(这将是一个冷笑话有响应时间在100年和300年之间在DEV)女士!
坚持下去,Francios,科幻是伟大的工作!
最后symfony允许ob娱乐下载我们快速创建可扩展的和可维护的web应用程序。
至于性能,hello world并不多说。有许多因素在确定应用程序的性能延迟和马克斯每秒查询开始。虽然hello world基地延迟的指标,当比较框架你真的需要考虑提供的各种特性,基础延迟。这就是大多数人出错。大多数人看到并排框架比较和选择列表的顶部。他们通常学习以后不是一个好主意。这些也是人们通常最响亮的尖叫。
最终取决于你的需求。
& lt; ?php echo“Hello, world”?在最好的办法是展示我相信,而不是& lt; ?php echo“Hello, world”?祝辞。
你明确你的意思,因为你不会与其他php开发框架,不认为“hello, world”与其他php开发框架的性能测试,据我所知Symfony的稳定框架群特征比其他任何。ob娱乐下载
相反,我们总是试图做的事:
(i = 0美元,美元数= count ($ my_array);i<美元计数;美元我+ +)
这是因为我们知道它有影响。(/报价)
有令人信服的理由count ($ my_array)不能实现为结构体数组{…}my_array;if (i < my_array.num_elements) ... ; behind the curtains?
CPU周期很便宜(c)
相反,我们总是试图做的事:
(i = 0美元,美元数= count ($ my_array);i<美元计数;美元我+ +)
这是因为我们知道它有影响。(/报价)
当你在它为什么不交换我+ + + +美元我也。甚至跳过一个操作码指令通过pre-increment代替post-increment。正如你可能知道的post-incrementing需要使用一个内部变量来存储当前指令之前我完成了美元的价值。
我不确定symfony是最ob娱乐下载好的优化框架。
请解释我这个:
php批/ load_data.php美元
PHP致命错误:允许内存大小16777216字节的疲惫在/home/www/...(试图分配23040字节)
来吧:16莫! ? !
甚至更thant symfony项目文件夹的大小(没有日志/和缓存/……ob娱乐下载)。这怎么可能? ? ?
但我不认为这是你的错FranA§ois, symfony的团队高雅代码,肯定的。ob娱乐下载
但是,也许,在赢得10 ms foreach循环之前,你应该也许optimzed librairies第三部分,或者内存使用……16莫需要长时间的分配。
再见
你参照大公司,但是您没有提到如何构建快速可靠的应用程序与symfony和您提供他们的应用程序的链接。ob娱乐下载
ob娱乐下载symfony框架是一个伟大的,但我仍然失踪的速度或至少缺乏的原因。
只是我2美分