我正在进行一个PHP/MySQL社交网络项目,该项目将由许多模块/部分组成,包括:
- 用户系统(权限、配置文件、设置等)
- stackoverflow风格徽章和声誉积分系统
- 墙/朋友流帖子
- 论坛
- 电文系统
- 投资组合
- 博客
- 代码片段
- 书签
- 以及其他几个部分
最初我计划使用Laravel框架构建所有东西,因为它非常棒,而且已经做了很多工作。
不过,我现在对此提出质疑。我还没有开始任何代码,所以这不是决定的因素。
此外,我构建网站/应用程序的任何部分所花费的时间并没有超过性能。
因此,如果Laravel与从头开始构建相比性能更低,但却节省了大量时间。如果这意味着更好的性能和更好的长期,我更愿意花大量的额外时间从头开始构建。
早在2006年左右,我就建立了一个由MySpace和Facebook混合而成的社交网络,并且没有使用框架。它让我能够100%控制一切,并提高性能,因为随着网络规模和流量的增长,我能够真正调整和优化一切。我认为在使用大型框架时,您会失去一些低级别的优化能力吗?
我的问题很容易被误认为是基于观点的问题。然而,在某种程度上,它的核心应该是合法的,因为如果性能是随着时间的推移而优先考虑的话,理论上哪条路线会更好。
我只用Laravel这样的框架构建了低流量应用程序,所以我没有用Laraver这样的框架创建高流量应用程序的经验,所以我不知道它们与没有框架相比表现如何。
我所有的高流量应用程序都没有框架。
基于我上面列出的模块/部分的类型。Laravel能在高流量和大规模水平上处理这些类型的应用程序吗?
这个问题有点模糊——首先,你对高流量的定义是什么?
在我工作的地方,我们运行从头开始手工构建的代码和laravel应用程序所服务的区域的组合(它嵌入在主站点中,提供的流量与旧应用程序代码的其余部分一样多)。
使用laravel构建的领域一点也没有放缓(使用相同的数据库源,并且它在相同的web服务器上运行,因此对基准测试非常有用)。
注意事项:
原始的手工构建代码比较旧,并不总是利用较新的PHP方法/设计类型。这意味着它并没有达到应有的效率。然后你会因为laravel做一些你可能并不总是需要/想做的事情而产生开销。
总结
归根结底,就是在laravel中模拟您认为应用程序中最重的部分,然后再次使用自定义的底层代码。然后对其进行基准测试。
你很可能会发现(好的)手工制作的工作会更快。这值几毫秒吗?这取决于个人的选择。Laravel完全有能力处理大量流量,但可以肯定的是,你可能会因为不使用它而节省少量时间。
这对你正在做的事情有多重要?如果有什么东西减缓了它的速度,并在Laravel中给你带来了问题,那就改变它。毕竟它是开源的。
供参考(取决于您是否将其视为高流量-我会):
这是一家总部位于英国的SASS,通常为英国游客提供服务。今晚9点(周五晚上——实际上是我们最安静的时候之一),我们目前有大约250000个活跃的PHP会话正在进行
该系统通过6个web服务器[用于冗余、流量负载等](负载平衡)为PHP应用程序提供服务。