compilation - 无法运行 Base.compilecache:“在路径中找不到”
问题描述
我现在正在尝试预编译一个 Julia 模块,以便它可以运行得更快。__precompile__()
但是,对我来说,在模块声明之前写入似乎没有在文件夹中产生任何缓存文件,这对我来说似乎很奇怪。
然后,我尝试Base.compilecache
通过以下步骤调用该函数:
- 在项目文件夹中启动 REPL
include("M.jl")
Base.compilecache("M")
然而,即使前两个步骤没有问题完成并且我实际上可以运行模块中定义的函数,第三步抱怨“错误:ArgumentError:M not found in path”,我似乎仍然无法生成任何缓存模块。
我在这里做错了什么?
解决方案
编译的模块是在用户定义的地方生成的,通常在 linux 中~/.julia/lib/v0.6/
。我敢肯定,如果您在那里查看,您会找到.ji
与模块的预编译版本相对应的文件。删除一个并尝试在 julia 会话中再次导入,以确认它将尝试重新进行预编译;如果是这样,则意味着您的__precompile__()
指令正在工作。
此外,请注意push!
自定义模块的路径(即源代码.jl
部分,而不是预编译.ji
文件的路径)到LOAD_PATH
(ie push!(LOAD_PATH, "./")
),如果它没有“安装”在默认位置(通常~/.julia/v0.6/
)。当您要导入模块时,Julia 需要访问这两者。
(PS。如果您更新模块,您还应该看到预编译发生)
推荐阅读
- log4net - Log4net ADOAppender 使用 Azure MSI 连接而不是普通连接字符串
- vue.js - .then(Response => SyntaxError: Unexpected token ., in Vue js
- reactjs - 将 react-redux useSelector 与打字稿一起使用
- python - 使用 jinja 模板从模型中加载图像
- typescript - 将 vue.js 类型添加到现有打字稿文件的最简单方法是什么?
- wpf - 为不同的窗口设置不同的绑定数据上下文
- powershell - 为 PowerShell 函数编写测试
- javascript - 如何使用 javascript 和 Jquery 应用按钮的颜色变化?
- python-3.x - 如何将元素插入到一组相似元素中
- python - 如何将列表中的整数转换为 int()?