Julia 如何计算主代码的时间?

Julia 如何计算主代码的时间?,julia,julia-jump,Julia,Julia Jump,我有一个包含一些函数的代码。对于每个函数,我都使用CPUTime。但在主模型中,我如何计算时间。请帮帮我 比如说 using CPUTime function Sminf2(ZB,ZT) model=CreateModel(); WES=model[1];f1=model[2];f2=model[3]; rf1=model[4];rf2=model[5];lf1=model[6]; lf2=model[7]; x=WES[:x]; y=WES[:y

我有一个包含一些函数的代码。对于每个函数,我都使用CPUTime。但在主模型中,我如何计算时间。请帮帮我

比如说

using CPUTime
function Sminf2(ZB,ZT)
    model=CreateModel();
    WES=model[1];f1=model[2];f2=model[3];
    rf1=model[4];rf2=model[5];lf1=model[6];
    lf2=model[7];
    x=WES[:x];
    y=WES[:y];
   JuMP.setRHS(rf1,ZB[1]);
   JuMP.setRHS(lf1,ZT[1]);
   JuMP.setRHS(rf2,ZT[2]);
   JuMP.setRHS(lf2,ZB[2]);
   @objective(WES,Min,f2);
  status=solve(WES)
  return getvalue(x)
end
@time @CPUtime Sminf2(ZB,ZT)
----------------------------------------------------------------- 但是在这个主代码中,我如何计算时间呢

using JuMP,CPLEX,CPUTime
include("WEIGHT.juliarc (2).jl");
include("CreateModel.juliarc.jl");
include("Sminf2.juliarc.jl");
include("Sminf1.juliarc.jl");
pq=[];
model=CreateModel();
WES=model[1];f1=model[2];f2=model[3];
rf1=model[4];rf2=model[5];lf1=model[6];
lf2=model[7];ofv1=model[8];ofv2=model[9];
x=WES[:x];
y=WES[:y];
for i=1:5
     W=WEIGHT(Zb,Zt);
     pq=[pq;W[1]];
end
println("PQ=",pq)

------------------------------------------------------------------------------ 通常,建议使用它来对一段代码进行基准测试

Base
Julia中的
@time
宏并行,
BenchmarkTools
导出通常优于
@btime
的宏,该宏可以避免测量编译时间并执行更精确的统计分析。(有关详细信息,请参阅包的文档)

您可以像使用
@time
宏一样使用它,例如
@btime rand(2,2)

要对代码块(如“主代码”)进行基准测试,您可以(而且应该)将该代码块放入函数或
开始。。。结束
块。比如说,

@btime begin
    # my code goes here
end
请注意,独立于基准测试,建议将性能关键代码放入函数中,Julia的文档中对此进行了解释


引入了
@btime
,当然,如果代码的运行时在编译时间上占主导地位,那么在对整个代码(“主代码”)进行基准测试时可能会出现这种情况,尽管如此,使用
@time
通常还是可以的。阅读关于如何正确使用
@time
的部分讨论应该是有指导意义的。

通常,建议使用它来对一段代码进行基准测试

Base
Julia中的
@time
宏并行,
BenchmarkTools
导出通常优于
@btime
的宏,该宏可以避免测量编译时间并执行更精确的统计分析。(有关详细信息,请参阅包的文档)

您可以像使用
@time
宏一样使用它,例如
@btime rand(2,2)

要对代码块(如“主代码”)进行基准测试,您可以(而且应该)将该代码块放入函数或
开始。。。结束
块。比如说,

@btime begin
    # my code goes here
end
请注意,独立于基准测试,建议将性能关键代码放入函数中,Julia的文档中对此进行了解释

引入了
@btime
,当然,如果代码的运行时在编译时间上占主导地位,那么在对整个代码(“主代码”)进行基准测试时可能会出现这种情况,尽管如此,使用
@time
通常还是可以的。阅读关于如何正确使用
@time
的部分讨论内容应该很有启发性