【问题标题】:Julia invoke script on existing REPL from command lineJulia 从命令行调用现有 REPL 上的脚本
【发布时间】:2018-11-15 16:08:59
【问题描述】:

我想从窗口命令行运行 Julia 脚本,但似乎每次运行 > Julia code.jl 时,都会创建一个新的 Julia 实例,并且启动时间(包加载、编译?)相当长。

有没有办法让我通过在当前 REPL/Julia 实例上运行脚本来跳过这个启动时间? (这通常可以为我节省 50% 的运行时间)。

我正在使用 Julia 1.0。

谢谢,

【问题讨论】:

    标签: cmd julia read-eval-print-loop


    【解决方案1】:

    你可以使用include:

    julia> include("code.jl")
    

    【讨论】:

    • 嗨,它应该来自终端 (cmd),而不是来自当前运行的 julia REPL。
    【解决方案2】:

    有几种可能的解决方案。所有这些都涉及向正在运行的 Julia 会话发送命令的不同方式。我首先想到的是:

    在所有解决方案中,您都可以通过执行一些 shell 命令将命令发送给 Julia。

    无论您喜欢哪种方法,关键挑战是清理代码以正确处理错误(例如,当您向 Julia 会话发送一些命令并且它崩溃或当您发送请求的速度超过 Julia 能够处理它们的速度时) .如果您希望 Julia 服务器与终端分离,这一点尤其重要。

    附带说明:当在 Julia 中使用来自 stdlib 的分布式模块进行多处理时,您实际上做了非常相似的事情(但通信是 Julia 到 Julia),因此您还可以查看该模块是如何实现的以获取感觉如何做到这一点。

    【讨论】:

    • 谢谢。我会调查一下。目前,我所做的是使用“while(true) sleep(1)”来监听触发信号文件,我猜这有点像服务器。
    • 是的 - 这类似于我描述的解决方案四,您可以通过文件系统实现同步。
    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 2020-03-31
    • 2015-04-14
    • 1970-01-01
    • 2013-01-31
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多