Maybe I wrote the wrong test code, just to see the time consumption of Make Fun
Blockquote
ams1(A) → A.
ams2(A) → fun() → A end.
Blockquote
amf1(0, A, B, C, _) → ok;
amf1(N, A, B, C, _) →
amf1(N - 1, A, B, C, 1) .
Blockquote
amf2(0, A, B, C, _) → ok;
amf2(N, A, B, C, _) →
Fun = fun(One1) → X = (One1 * A * B * C), Y = B-C, Z = X / Y, Z end,
amf2(N - 1, A, B, C, Fun).
the test result:
Blockquote
24> utTc:ts(1000000, funTest, ams1, [1]).
=====================
execute Args:[1]
execute Fun :ams1
execute Mod :funTest
execute LoopTime:1000000
MaxTime: 112800(ns) 0.000113(s)
MinTime: 200(ns) 0.0(s)
SumTime: 314857400(ns) 0.314857(s)
AvgTime: 314.8574(ns) 0.0(s)
Grar : 116553(cn) 0.12(%)
Less : 883447(cn) 0.88(%)
=====================
ok
25>
25>
25>
25> utTc:ts(1000000, funTest, ams2, [1]).
=====================
execute Args:[1]
execute Fun :ams2
execute Mod :funTest
execute LoopTime:1000000
MaxTime: 11801000(ns) 0.011801(s)
MinTime: 200(ns) 0.0(s)
SumTime: 404538500(ns) 0.404539(s)
AvgTime: 404.5385(ns) 0.0(s)
Grar : 118765(cn) 0.12(%)
Less : 881235(cn) 0.88(%)
=====================
ok
26>
26>
26> utTc:ts(1000000, funTest, ams2, [1]).
=====================
execute Args:[1]
execute Fun :ams2
execute Mod :funTest
execute LoopTime:1000000
MaxTime: 4434400(ns) 0.004434(s)
MinTime: 200(ns) 0.0(s)
SumTime: 390178500(ns) 0.390179(s)
AvgTime: 390.1785(ns) 0.0(s)
Grar : 420574(cn) 0.42(%)
Less : 579426(cn) 0.58(%)
=====================
ok
27> utTc:ts(1, funTest, amf1, [100000000, 1, 2, 3, 4]).
=====================
execute Args:[100000000,1,2,3,4]
execute Fun :amf1
execute Mod :funTest
execute LoopTime:1
MaxTime: 129498900(ns) 0.129499(s)
MinTime: 129498900(ns) 0.129499(s)
SumTime: 129498900(ns) 0.129499(s)
AvgTime: 129498900.(ns) 0.129499(s)
Grar : 0(cn) 0.00(%)
Less : 1(cn) 1.00(%)
=====================
ok
28> utTc:ts(1, funTest, amf2, [100000000, 1, 2, 3, 4]).
=====================
execute Args:[100000000,1,2,3,4]
execute Fun :amf2
execute Mod :funTest
execute LoopTime:1
MaxTime: 1571027600(ns) 1.571028(s)
MinTime: 1571027600(ns) 1.571028(s)
SumTime: 1571027600(ns) 1.571028(s)
AvgTime: 1571027600(ns) 1.571028(s)
Grar : 0(cn) 0.00(%)
Less : 1(cn) 1.00(%)
=====================