提高斯卡拉脚本的启动时间 - 客户端模式?

问题描述 投票:11回答:3

我想获得短斯卡拉脚本运行一样快,Python脚本做,特别是在脚本的启动时间方面。

谁能推荐这样做的一些方法,不涉及与GCJ编译,比如?

我能想到的一种方法是使用运行在JVM的客户端模式的脚本,但我似乎无法得到这个工作。一个例子(已知良好)家当因为这将是巨大的。

更新:我知道的其他问题,但不认为任何可行的答案迄今已发现,我正在寻找的是标准的安装工作,无需额外需求的解决方案。这是我一直想把你在与“不涉及与GCJ编译,例如”。

似乎-client模式是专为这个目的很明确,但由于某种原因,斯卡拉脚本来激活它只是尴尬。

performance scala jvm startup
3个回答
6
投票

作为many other questions之前已经走了,如果一个人只能知道如何寻找他们,用Nailgun

以改善性能脚本的其他方式是在系统启动时自动启动fsc,所以这将是可用的脚本,并使用-savecompiled,以避免脚本编制重复。

编辑

你提到-client模式,但我认为这真的不是一个好的选择。该会给你一个较慢的Scala编译器,并且无助于改善编译器本身的启动时间,如果不是Java。好多有fsc作为守护程序,运行在-server,和/或保存编译脚本与-savecompiled

现在,我不知道你与-client有什么问题,但我已阅读,它不与64位JVM运行。可能这是你的情况?

PS:仰望qazxsw POI的问题,我注意到的JRuby已建成钉枪支持!


0
投票

因为它编译成一个本机二进制我没有试过呢,但斯卡拉母语承诺近乎即时启动。所以,一个解决方案是提供它为多个二进制下载。

similar


0
投票

我只是想通过斯卡拉传递“-client”参数在JVM是这样的:

http://www.scala-native.org/en/latest/

它似乎工作。丹尼尔C.索布拉尔写道,他读的是它不与64位JVM运行。我不知道,也许这是过时的。反正它似乎下降的启动时间一点点。

运行:

#!/bin/sh
exec scala -J-client "$0" "$@"
!#
args.foreach(println)

这是最快的运行只是一对夫妇的测试。没有它,它占用0.5秒更长的时间。但是,这真的是一个快速测试,应该更系统地做来有意义的结果。

是不是有一种方法,使Scala的编译和脚本的首次运行保存编译结果更快重用?但是我并不在这个时间点不肯定的。

更新:我刚刚看到有关的Java -help'选项“-client”未记录(了?)。反正也没有抛出错误(这是对的unexisting选项使用完成)。所以,我不知道如果“-client”选项真的有后果。

© www.soinside.com 2019 - 2024. All rights reserved.