如何使用选项暂停和恢复以在Julia中保持跟踪
我正在努力从计算角度分析我的代码。main函数以某种复杂的方式运行嵌套循环,我正在搜索计算时间过长的值,以便找出它们的特殊情况 这与我在标题中的原始问题有关。假设有一个循环,将数字从如何使用选项暂停和恢复以在Julia中保持跟踪,julia,Julia,我正在努力从计算角度分析我的代码。main函数以某种复杂的方式运行嵌套循环,我正在搜索计算时间过长的值,以便找出它们的特殊情况 这与我在标题中的原始问题有关。假设有一个循环,将数字从1汇总到10^20(只是假设),如何(如果可能的话)随意暂停操作,并在屏幕上获得有关当前进度和所用时间的输出。稍后,如果需要,继续计算,而不损失进度 我认为它可能是一个有用的工具,在你不知道如何估计计算所需时间的情况下,你的目标是一定的精度。或者,如果需要的话,通常只用于长时间的计算。您正在寻找的功能称为调试,可以从
1汇总到10^20
(只是假设),如何(如果可能的话)随意暂停操作,并在屏幕上获得有关当前进度和所用时间的输出。稍后,如果需要,继续计算,而不损失进度
我认为它可能是一个有用的工具,在你不知道如何估计计算所需时间的情况下,你的目标是一定的精度。或者,如果需要的话,通常只用于长时间的计算。您正在寻找的功能称为调试,可以从Juno使用,更多信息可在此处找到: 其他有用的选择包括:
日志记录
模块@show
,@debug
宏来显示变量、状态等序列化
函数以存储变量的状态(可能稍后恢复)Debugger.jl
()包。下面是一个示例用法:
using Debugger
function foo(n)
x = n+1
((BigInt[1 1; 1 0])^x)[2,1]
end
@enter foo(20)
谢谢你的回复。我在使用serialize时遇到了问题,你能用一个简单的例子来编辑你的答案吗?这里有一个简单的例子:
使用serialize;x=5;打开(“data.jld”、“w”)do f;序列化(f,x);结束
这里有许多可用的场景和方法。这是一个很好的开始:但是,如果你仍然有问题,只需问一个简单的问题:-)