【问题标题】:Play framework compilation time worth the development effort?玩框架编译时间值得开发吗?
【发布时间】:2018-02-05 04:10:35
【问题描述】:

我自豪地在 Java 的 Play 框架上部署了一个 helloworld 项目。在我决定将它作为我要构建的项目的主要框架之前,我决定尝试一下。我担心其中的一件事:

  1. 热编译非常好,但是很慢。字符串中的一个小变化会触发整个项目的重新编译,这需要大约 30 秒。 与 Python Django 相比,这非常慢。我可以更改我想要的任何内容,包括系统调用,它只会在刷新时工作,就好像更改了什么对框架无关紧要。

我在这里错过了关于 Play 的一些东西吗?我担心开发时间。如果每次我添加一些东西都必须等待大约 30 秒来测试它,那将是一个巨大的打击。但我确信这些绝对是构建这个闪亮框架时的考虑因素。 欣赏你的想法!请赐教,让我玩! :)

【问题讨论】:

  • 这肯定有问题...小的变化会在不到 1 秒的时间内热重新加载。当您的项目增长并包含越来越多的依赖项时,重新加载时间可能会增加,但 hello world 并非如此
  • 你能告诉我你的开发环境吗?我正在使用 eclipse IDE 和命令提示符作为激活器,发现热重载时速度很慢。
  • Idea Ultimate、Mac OS El Capitan、i5,您也可以检查是否是 IDE 的问题,只需从终端 (mac/linux) cmd (win) 使用类似 ./activator ~run 的命令运行您的应用程序和然后使用一些简单的编辑器(记事本或 smtg)来编辑文件并观察它是否仍然缓慢地热加载

标签: playframework


【解决方案1】:

首先,您要在 Java 框架和 Python 之间进行比较。所以,是的,热编译确实比基于 Django 的重启需要更长的时间。但与其他 Java 框架(如 Spring)相比,我发现它的好处是巨大的。

其次,您使用的是什么硬件/平台?我曾在以下情况下尝试过 Play:

(1) Eclipse 上的代码,在命令提示符下通过activator run 运行服务器
在 10KLOC 项目大小下,刷新大约需要 8-10 秒。

(2) IntelliJ Ultimate 中的代码,Play 服务器在 IntelliJ 中运行
对于 20KLOC 项目大小的小变化,刷新需要 1 秒。

第一个案例的 8-10 秒重新加载时间并没有打扰我。当我开始使用 IntelliJ 时,我对速度提升感到非常满意。

结论:
(1) 我喜欢 Play 的热加载
(2) 使用 IntelliJ Ultimate 效果更佳(注意:免费版不支持 Play)

注意:我与 Play Framework 或 IntelliJ 没有任何关系,除非是一个快乐的初次使用者。

【讨论】:

  • 谢谢 Aaron,很高兴知道 IntelliJ 大大缩短了刷新时间,会试一试。
  • 不客气。请注意,我使用的是终极版。免费版不支持 Play。
  • 用 IntelliJ 确实很快,主要是因为 SBT 增量编译器!
猜你喜欢
  • 2012-09-13
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多