2017-02-25 72 views
0

我在Play上工作! Angular 2和webjars依賴項的應用程序。 SBT播放插件和打字稿插件。我使用漸進式編譯,但每次重新編譯都需要大量的時間。我設置了「sbt-optimizer」來檢查哪些任務是最長的。我發現每次重新編譯WebJars幾乎都要重新編譯時間。我無法想象爲什麼他需要在第一次編譯後用靜態文件做些什麼。但即使我改變了Scala文件或者旋轉模板,也沒關係所有的webjars。SBT增量編譯與Docker中的WebJars

UPD: 如果我在沒有Docker的機器上運行,那麼速度是正常的 - 重新編譯需要幾秒鐘。 Docker內部 - 200秒+。編碼消息不需要docker - 2s,在docker-13s內。編譯消息不需要docker - 2s,在docker裏面 - 13s。編譯消息不需要docker - 2s,在docker裏面 - 13s。 碼頭在碼頭500-60000ms內沒有碼頭10-300ms的屏幕上的操作。

UPD: 添加我的搬運工文件

FROM openjdk:8 

ENV SCALA_VERSION=2.12.1 
ENV SBT_VERSION=0.13.13 
ENV NODEJS_VERSION=6.10.0 

# Install sbt 
RUN cd /tmp && \ 
wget https://dl.bintray.com/sbt/native-packages/sbt/$SBT_VERSION/sbt-$SBT_VERSION.zip && \ 
unzip sbt-$SBT_VERSION.zip -d /usr/local && \ 
rm sbt-$SBT_VERSION.zip 

#install nodejs for web jars 
RUN cd /tmp && \ 
wget https://nodejs.org/dist/v$NODEJS_VERSION/node-v$NODEJS_VERSION-linux-x64.tar.xz && \ 
tar -C /usr/local --strip-components 1 -xJf node-v$NODEJS_VERSION-linux-x64.tar.xz && 
rm node-v$NODEJS_VERSION-linux-x64.tar.xz 

下面是優化打印輸出: enter image description here

可能是我錯過了什麼,或有人有這樣的問題,爲什麼SBT,每次做的,我如何防止這種情況?

謝謝

+0

看起來像問題,因爲我在Docker容器中運行它,以前與Vagrant存在實時刷新的問題。而現在Docker容器裏的重裝很慢。 版本: SBT 0.13.13 播放2.5.12 –

+0

如果我沒有docker運行,然後重新加載需要幾秒鐘。並且在Docker容器內需要200秒。在兩次運行中,內存和CPU使用情況都非常相似。 但是在泊塢窗500-60000ms的時間內,屏幕10-300ms的時間相同。 –

回答

1

如果您正在運行的Mac上的碼頭工人安裝的卷,你可能打this issue與安裝的卷的性能。

+0

非常大的謝謝!我曾認爲這個問題可能與IO操作有關。沒有深入,但看起來你是對的。 –