jjzjj

php - Magento 2 变得非常慢(开发者模式)

coder 2023-06-14 原文

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

首先我在 Windows 上使用 xampp 进行了尝试,结果一团糟……每次刷新页面都是一场噩梦,加载页面大约需要 30-40 秒。我读到过,Windows 系统文件在使用 magento 时很慢,因为它的结构很大,而且这篇文章几乎是在强制你使用 linux 来开发 magento 项目。

问题是我需要 Windows 来安装只能在 Windows 上运行的另一家公司应用程序,我尝试使用 Virtualbox 安装虚拟机,它有所改进......但我正在使用虚拟机这一事实让我很生气...

我目前正在工作的下一个解决方案是使用 vagrant。好的,我感觉这种方式发展得很好,但它一直很慢...... 15-20s......

我在 Vagrant 上的配置是 5120MB(电脑有 8GB)并使用我所有的电脑 4 核。

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

写几行代码,tab到浏览器,F5,即时查看变化。

在 M2 上:编写几行代码,在浏览器中按标签,F5,等等……等等……好吧,现在它刷新了页面,但它没有加载,等等……等等……嗯几乎…… 。 好的。没有变化,但我清理了缓存......哦,我想我也必须删除静态文件。去吧……再等等……

天啊……M2怎么跑得更快?我只问5s之类的……只是看着屏幕一直在等待我感觉很蠢……

对于声明,我只要求开发模式,我尝试过必须在生产模式下安装另一个 magento 项目以更快地测试事物,然后与开发者模式...因为...天哪...只是尝试一次又一次地执行订单工作流程...

嗯,仅此而已...我唯一没有尝试的是在计算机上使用Linux环境...但这与使用vagrant相同...我不明白...您如何开发M2开发商?在特殊的前端开发人员中...我不相信他们的工作方式与我相同...等待 20 秒加载页面 + 清理缓存 + 删除静态文件等。

详细信息:我用 vagrant 尝试了一切,但没有改进,我目前使用的是 Ubuntu 15.04、Apache 2.4、PHP 5.6(我尝试了 7 但仍然相同)mysql 5.6

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

最佳答案

2018 年更新,Magento 2.2.4

Vagrant + Windows + Magento2 = 灾难。 Vagrant + Apple + Magento2 = 灾难。

Ubuntu + Magento2 = 用煤气做饭。

简单的模块,例如一个小部件,比预期的 2-3 小时多花很多天,如果打开一个页面需要一分钟,就不可能记住您在做什么,特别是如果您必须清除缓存、编译、升级或其他任何事情这根本不需要时间。

这是我在 Mac 或 Windows 两种选择的办公室工作时亲 body 验过的。在花了一整天尝试更改模板指令并且未能在 8 小时内更改配置后,我考虑在 linux 机器上试一试,看看我是否发疯了,或者这个 Vagrant 发明是否和那个一样有用醉酒的 Vagrant 在路边的公园里露宿。

旧的 linux 机器带有贫乏的 RAM,一个旧的 SSD,库存的 Apache 和没有花哨的缓存东西毫无问题地完成了任务,我能够毫不费力地在开发者模式和生产模式之间切换,并完成了我花了几天时间没有完成的事情在几分钟内。

工作机器是第 8 代 i7,Vagrant 设置非常像某人的宝贝,并且花费了大量时间来构建野兽。然而,构造板 block 移动得更快。 Vagrant 和虚拟化可能很流行,但对 M2 开发没有用。事实上,我安装了 M2 并为它完成了所有数据库和虚拟主机设置,所花的时间比构建 Vagrant box 所需的时间还短。

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

对于生产,您需要一些可扩展的东西,以便您可以获得正常的速度增强,例如Redis、操作码缓存、Varnish、调整过的 php-fpm、调整过的 MySQL/MariaDB。如果你在 Linux 上开发,那么你可以在本地主机上测试这些东西,知道它们在生产环境中可以正常工作。有了 Vagrant 这种令人憎恶的东西,你会过早地涉足这些优化,因为你希望并祈祷一台高性能的机器,因为你需要完成工作。但是,如果这样做,并且没有本地速度,您将无法完成任何事情。

如果您没有备用机器来安装 Linux,那么只需转到本地提示,获取任何 PC,将 SSD 插入其中,您就可以开始了。

关于php - Magento 2 变得非常慢(开发者模式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40018111/

有关php - Magento 2 变得非常慢(开发者模式)的更多相关文章

  1. ruby-on-rails - 使用 HTTParty 的非常基本的 Rails 4.1 API 调用 - 2

    Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"

  2. ruby - 如何在 Ruby 中生成一个非常大的随机整数? - 2

    我想在ruby​​中生成一个64位整数。我知道在Java中你有很多渴望,但我不确定你会如何在Ruby中做到这一点。另外,64位数字中有多少个字符?这是我正在谈论的示例......123456789999。@num=Random.rand(9000)+Random.rand(9000)+Random.rand(9000)但我认为这是非常低效的,必须有一种更简单、更简洁的方法来做到这一点。谢谢! 最佳答案 rand可以将范围作为参数:pa=rand(2**32..2**64-1)#=>11093913376345012184putsa.

  3. Ruby 服务器在本地主机(teambox)之外非常慢 - 2

    我刚刚在我的Ubuntu9.10服务器上安装了TeamBox。我使用提供的服务器脚本在端口3000上启动并运行它。它的运行速度非常慢,从另一台计算机连接时每个HTTP请求最多需要30秒。我使用链接从shell加载TeamBox,一点也不花时间。然后我设置了一个SSH隧道,它再次运行得非常快。我通过此服务器上的apache以及SAMBA等运行了大约30个虚拟主机,没有任何问题。我该如何解决这个问题? 最佳答案 我的redmine(ruby,webrick)太慢了。现在我解决了这个问题:apt-getinstallmongrelruby

  4. 网站日志分析软件--让网站日志分析工作变得更简单 - 2

    网站的日志分析,是seo优化不可忽视的一门功课,但网站越大,每天产生的日志就越大,大站一天都可以产生几个G的网站日志,如果光靠肉眼去分析,那可能看到猴年马月都看不完,因此借助网站日志分析工具去分析网站日志,那将会使网站日志分析工作变得更简单。下面推荐两款网站日志分析软件。第一款:逆火网站日志分析器逆火网站日志分析器是一款功能全面的网站服务器日志分析软件。通过分析网站的日志文件,不仅能够精准的知道网站的访问量、网站的访问来源,网站的广告点击,访客的地区统计,搜索引擎关键字查询等,还能够一次性分析多个网站的日志文件,让你轻松管理网站。逆火网站日志分析器下载地址:https://pan.baidu.

  5. ruby-on-rails - 这个 C 和 PHP 程序员如何学习 Ruby 和 Rails? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它

  6. ruby-on-rails - 即使没有挂起的迁移,Rails 迁移也非常缓慢 - 2

    我的生产Rails应用程序需要167秒来运行rakedb:migrate。可悲的是,没有要运行的迁移。我试图在检查是否有待处理的迁移时调整运行的迁移,但随后检查花费了同样长的时间。我心目中唯一的“借口”是数据库并不小,那里有1M条记录,但我看不出这有什么关系。我查看了日志,但没有任何迹象表明出了什么问题。我在运行ruby2.2.0rails4.2.0有没有人知道为什么会这样,是否有什么办法可以解决? 最佳答案 运行rakedb:migrate任务还会调用db:schema:dump任务,这将更新您的db/schema.rb。因此,即

  7. ruby - 从谷歌开发者网站下载后,client_secret.json 为空 - 2

    我正在尝试从googleAPI下载client_secret.json。我正在执行https://developers.google.com/gmail/api/quickstart/ruby中列出的步骤.使用此向导在GoogleDevelopersConsole中创建或选择项目并自动启用API。在左侧边栏中,选择同意屏幕。选择电子邮件地址并输入产品名称(如果尚未设置),然后单击“保存”按钮。在左侧边栏中,选择凭据并点击创建新客户端ID。选择应用程序类型已安装应用程序,已安装应用程序类型为其他,然后单击“创建客户端ID”按钮。点击新客户端ID下的下载JSON按钮。将此文件移动到您的工作

  8. ruby - 由于 GEM_HOME 的要求,启动 Ruby 应用程序非常慢 - 2

    我目前正在开发一个ruby​​应用程序,但它运行得非常(非常!)慢..到目前为止,我已经尝试了几件事,我可以将其缩小到主要问题:Ruby正在尝试在$LOAD_PATH的每个目录中查找它的需求。基本上我所观察到的是,ruby正在查看大量文件,试图查看那里是否存在需求。如果找不到它们,它将转到下一个目录。好消息是我可以通过strace看到这种情况。有很多这样的输出:open("/boa_proj_build/nsteen/.gem/gems/i18n-0.7.0/lib/commander/help_formatters/base.rb",O_RDONLY|O_CLOEXEC)=-1ENO

  9. ruby - 为什么 split (' ' ) 试图变得(太)聪明? - 2

    我刚刚发现String#split有以下奇怪的行为:"a\tbc\nd".split=>["a","b","c","d"]"a\tbc\nd".split('')=>["a","b","c","d"]"a\tbc\nd".split(//)=>["a\tb","c\nd"]Thesource(来自2.0.0的string.c)超过200行,包含这样一段话:/*L5909*/elseif(rb_enc_asciicompat(enc2)==1){if(RSTRING_LEN(spat)==1&&RSTRING_PTR(spat)[0]==''){split_type=awk;}}后来,在

  10. 一个非常明显的现象,正在发生——元宇宙正在被越来越多的人所推崇 - 2

      一个非常明显的现象,正在发生——元宇宙正在被越来越多的人所推崇,无论是科技巨头,还是资本巨头,几乎都是如此。同时,区块链则正在一点一点地回归理性与客观。对于区块链来讲,这是一个好现象。它告诉我们,人们对于区块链的狂热而激进的认识,正在被一步又一步的校正和纠偏。由此,区块链行业的发展,将会真正进入到一个全新的发展阶段。  同以往人们仅仅只是将区块链看成是一个概念,并以此来获取资本和流量不同。当人们对于区块链的认识变得深入,资本和流量反倒不再是区块链玩家们真正关心的问题。至少从当下情况来看,那些依然还在区块链行业里坚守的玩家们,更多地在坚持长期主义,更多地在寻求区块链与行业结合的正确的方式和方

随机推荐