Magento 2非常慢(开发者模式)

sla*_*ast 18 php magento e-commerce vagrant magento2

最近我开始开发magento 2项目.

首先我尝试使用xampp进行Windows操作,这是一个烂摊子...每个刷新页面都是一场噩梦,加载页面大约需要30-40秒.我读到它,Windows系统文件使用magento是如此之慢,因为它具有大型结构,文章almmost迫使你使用linux来开发magento项目.

问题是我需要Windows用于另一个仅适用于Windows的公司应用程序,我尝试使用Virtualbox安装虚拟机,它改进了一点......但我正在虚拟机上工作的事实让我生气...

我现在正在使用的下一个解决方案是使用vagrant.好吧,我觉得这种方式很好,但它一直很慢...... 15-20s ......

我在Vagrant上的配置是5120MB(个人计算机有8GB)并使用我所有的4个核心.

我感觉很糟糕这样......当我在以前的项目中工作时,使用symfony/Laravel/Codeigniter,就像:

写一些代码行,tab到浏览器,F5,INSTANTLY看到变化.

在M2上:写一些代码行,选项卡到浏览器,F5,等待......等等......好吧现在刷新页面,但它没有加载,等等......等等......嗯几乎......好吧.没有变化,但我清理了缓存...哦,我想我也必须删除静态文件.去吧......等一下......

上帝...... M2没有办法加速吗?我只问5s或类似的东西...只是我感觉如此愚蠢,看着屏幕一直在等待......

对于声音,我只是要求开发模式,我试图在生产模式下安装另一个magento项目以便更快地测试事物,然后它与开发者模式相比可以流畅...因为... omg ...只是尝试一次又一次地执行订单工作流程......

好吧,这就是...我唯一没有尝试的是在计算机上使用Linux环境...但它与使用流浪者一样......我不明白......你是如何开发M2​​开发人员的?在特殊的前端开发人员...我不相信他们的工作方式和我一样......等待20秒加载页面+清理缓存+删除静态文件等.

详细信息:我尝试了所有与流浪但但没有改进,我目前在Ubuntu 15.04,Apache 2.4,PHP 5.6(我试过7但仍然相同)mysql 5.6

这是网络标签:http: //i.imgur.com/HG7mbeX.png http://i.imgur.com/HG7mbeX.png

Hen*_*Cat 6

2018更新,Magento 2.2.4

无业游民+ Windows + Magento2 =灾难。无业游民+苹果+ Magento2 =灾难。

Ubuntu + Magento2 =用汽油烹饪。

简单的模块(例如小部件)所花费的时间比预期的2-3个小时要多得多,而且如果打开页面需要一分钟的时间,就无法记住您在做什么,尤其是在您必须清除缓存,进行编译,升级或其他任何都不花时间的事情。

我从在Mac或Windows可供选择的办公室工作时就已经亲身体验了这一经验。在花了整整一天的时间尝试更改template指令并且在8小时内未进行任何配置更改之后,我想到了在Linux机器上试一下一下,看看我是否发疯了,或者这种无所事事的发明是否像那样有用醉酒的流浪汉睡在粗糙的公园里。

带有贫瘠RAM的老式linux盒,旧的SSD,Apache的存货以及没有奇特的缓存的东西可以毫无问题地完成任务,我能够轻松地在开发人员和生产模式之间进行切换,并花了我数天的时间来完成数分钟的工作。

工作机是第8代i7,Vagrant的安装非常像某人的宝贝,并且花了很多时间来建造野兽。然而,构造板块运动得更快。流浪汉和虚拟化可能很流行,但对M2开发没有用。实际上,我安装了M2并完成了所有数据库和虚拟主机的安装,而所需的时间却比建立Vagrant框所需的时间短。

至于性能,由于在基本的Linux设置上,M2比一些笨拙的Vagrant工作快10倍,因此很容易看出Magento 2真正的速度问题在哪里。如果您在Chrome中启动Lighthouse,您会发现TTFB绝对不错,但是如果您缩小并合并JS + CSS,性能会降低一半。这是因为M2有一个兆字节的脚本要下载。这是性能杀手。如果您正在使用“流浪者”盒子,那么您将永远看不到它并且没有修复它的速度。通过修复它,我的意思是写一个没有废话的适当主题,例如在每个页面上加载jQuery。

对于生产来说,您需要一些可扩展的东西,以便可以正常地提高速度,例如Redis,操作码缓存,Varnish,调整过的php-fpm,调整过的MySQL / MariaDB。如果您在Linux上进行开发,则可以在localhost上测试这些东西,因为它们可以在生产环境中正常工作。有了流浪汉,您将过早地尝试这些优化,因为您希望并为性能良好的机器祈祷,因为您需要完成工作。但是,这样做并没有本机速度,您将无法完成任何工作。

如果您没有备用计算机来安装linux,则只需转至本地提示,获取任何PC,然后在其中插入SSD,您就可以开始使用了。


小智 6

这是我在 localhost 中为 Magento 2.2 和 2.3 开发主题/模块的秘诀:

  • MacBook Pro
  • Valet Plus(Nginx、MySQL 5.7、PHP7.1 和 7.2 - 您可以使用valet use 7.1或轻松在 PHP 版本之间切换valet use 7.2https://github.com/weprovide/valet-plus
  • memory_limit 设置为 4G
  • 确保 Magento 设置为开发人员模式: php bin/magento deploy:mode:set developer
  • 除 FPC 外,所有缓存均已启用。每当我需要测试涉及配置文件等的更改时,我都会手动删除var/cache文件夹的内容或generated/code用于 DI 更改的文件夹。特别减慢一切的缓存类型是配置缓存,因此必须启用它,否则前端/后端页面的加载速度会非常缓慢。
  • 我使用 Grunt Watch 和 Livereload Chrome 扩展程序来查看我对 .less 文件的更改,而无需在每次更改时部署静态文件。https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/css-topics/css_debug.html
  • 每当我更改 JS 文件时,我导航到 pub/static/[adminhtml/frontend]/[theme]/[locale]/ 并仅删除与我更改的 JS 文件对应的静态文件所在的文件夹。这阻止了我必须部署所有静态文件。Magento 将仅为已删除文件夹重新生成静态文件,从而节省大量时间(每次删除静态文件时,请务必在浏览器中进行硬刷新)

它仍然不是一个完美的设置,但它是我迄今为止发现的最快的方法,可以在不拉扯头发的情况下提高效率。


sla*_*ast 3

我尝试了所有方法,唯一有效的是提供 bitnami 的虚拟机。https://bitnami.com/stack/magento/virtual-machine

说真的,我不知道这个虚拟机有什么,但速度非常快。我尝试使用全新安装的 Ubuntu、CentOS 等创建我的虚拟机,但效果不如该虚拟机那么好。