我正在开展 Hybris项目,等待350 - 550秒对于单个 Hybris服务器启动非常耗时,即使只是代码中的一点修改/错误类型。是否可以通过仅运行我修改过的扩展程序或其他任何方式来减少 时间?那将是一件好事。
答案 0 :(得分:11)
+1。它适用于hybris。当然,它很昂贵,但您可以快速获得ROI节省。初始负载较慢,但一旦启动它就会节省大量时间。
要做的另一件事是查看localextensions.xml并确保只有项目所需的扩展名在那里。这对启动时间有很大影响。
在运行平台时,通过使用HSQL以外的数据库,我也看到了合理的启动时间改进。我在本地使用MySQL。
另一件事是确保你在你正在使用的机器上得到足够的咕噜声。我刚刚在这里启动了这个平台,即使JRebel运行它,也只有#&花了200秒。我建议查看四核CPU和SSD,以缩短本地开发的时间。
答案 1 :(得分:6)
您将在本文中找到所有说明,以便将服务器启动时间提高到50%
https://hybrismart.com/2016/12/27/speed-up-server-start-time/
答案 2 :(得分:2)
我建议使用Jrebel - 它就像Hybris的魅力一样,并在运行时重新部署bean。主要的优点是它能够在不重新部署的情况下重新配置Spring bean,因此它确实可以节省很多时间重启服务器。
有一个开源替代品,但它不适合我,但值得关注它们:DCEVM和fakereplace
答案 3 :(得分:1)
我建议您禁用在开发过程中使用的一些重型扩展程序,并仅启用您正在处理的此扩展程序以及必要的扩展程序。我不知道,你正在使用哪个hybris版本,但据我所知,会有功能,这应该可以解决你在平台的进一步版本中的问题,但我不是百分之百确定。
答案 4 :(得分:1)
我看到很多评论,因为人们无法设置Jrebels的任何开源替代方案。
Hybris服务器的启动时间无法大幅减少,尤其是在需要大约20到30分钟的Windows上(如果您还使用标准扩展名构建了一些自定义扩展名)。
唯一好的解决方案是使用JRebels,但是JRebel的缺点是它太昂贵了。可以使用DCEVM + HotSwap替代JRebel。 Here are the Steps to setup HotSwap.
JRebel或HotSwap实际做什么? 它将代码更改加载到实时运行的服务器中。您无需为每次代码更改而重新启动服务器。
如果您在设置该设置时遇到任何问题,请告诉我。
答案 5 :(得分:0)
您还要查看https://wiki.hybris.com/display/partnerblog/2013/09/23/Avoid+restarting+the+server+as+much+as+possible。虽然这不是您问题的直接答案,但它说明了如何避免服务器重启。
答案 6 :(得分:0)
感谢大家,谁写了答案! :) 实际上我找到了一个非常好的解决方案来解决我自己的问题:
现在,如果我启动hybris服务器并在项目中修改(或创建)文件,我只需在修改后的软件包上运行编译,或者仅在单个当前文件上运行,几秒钟后Tomcat重新加载修改后的内容目前的延期。
更新:由于Hybris扩展程序无法使用" webapp"其他扩展的一部分,似乎无法重新加载任何依赖。 所以我的解决方案只适用于"仅限webapp"扩展。
答案 7 :(得分:0)
请在local.properties文件中使用此属性
#Performance mode
build.development.mode=false
tomcat.development.mode=false
storefront.granule.enabled=true
addonfilter.active=false
答案 8 :(得分:0)
尝试在localextension.xml中只放置必需的扩展名
您可以通过local.properties文件禁用Solr服务器来阻止它自动启动。
如果您在intel-i3 / AMD处理器上运行hybris服务器,请以最低8 GB RAM升级到intel-i5。
答案 9 :(得分:0)
因此,自从过去一年以来,我一直在使用JRebel和Hybris。
虽然我无法使用我的IDE配置它(我确信有一种简单的方法),但用法非常简单。
在我修改了任何java文件或弹簧配置之后,在与我运行服务器的终端不同的终端中,我导航到我修改了文件的扩展,然后执行ant build
。修改后的文件由正在运行的服务器选取(您可以看到在服务器控制台中拾取的新文件/配置)。
关于许可证,我使用来自https://my.jrebel.com/的myJRebel许可证,该许可证需要社交媒体登录才能获得许可证密钥。
设置步骤 -
将以下内容添加到local.properties(相应地修改)
tomcat.debugjavaoptions=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n -Xverify:none -agentpath:c:/Monil/Tools/jrebel/lib/jrebel64.dll -Xbootclasspath/p:${HYBRIS_TEMP_DIR}/hybris/rebelboot.jar
请注意,当您执行ant all并启动服务器时,${HYBRIS_TEMP_DIR}/hybris/rebelboot.jar
jar会自动直接添加到hybris temp。
答案 10 :(得分:0)
尝试Linux(Ubuntu)而不是Windows。性能差异令人惊叹。它类似于构建时间的1/4和服务器启动的1/2时间。我希望我早点弄清楚了!
答案 11 :(得分:0)
除了使用 JRebel 减少重启次数(如之前的答案中提到的)之外,您正在使用的操作系统也很重要。 如果您在 Windows 计算机上工作,我强烈建议您使用 unix 系统。因此,我认为您有以下选择:
如果您不熟悉 Docker(需要一些学习),请尝试在 Windows 上使用 WSL2。
与普通的 Windows 方法相比,在这里我可以将构建和启动时间加快近 3 倍。
希望这能帮助您加快工作速度:-)