let count = 1000000
print "--- 循环求和For ---"
let start=time.stamp_ms();
let sum=0;
for i in 0..count {
set sum = sum + i
};
let end=time.stamp_ms();
print "从 1 到 "count" 的总和是: " sum;
print "所需时间: " end - start "毫秒";
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 588 毫秒
print "--- 循环求和While ---"
let start=time.stamp_ms();
let sum=0;
let i = count;
while (i>0) {
set i = i - 1
set sum = sum + i
};
let end=time.stamp_ms();
print "从 1 到 "count" 的总和是: " sum;
print "所需时间: " end - start "毫秒";
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 1006 毫秒
print "--- 循环+条件判断 ---"
let start=time.stamp_ms();
let sum=0; for i in 0..1000000 {
if i % 2 == 0 {
set sum = sum + i
}
};
let end=time.stamp_ms();
print "从 1 到 "count" 的偶数和是: " sum;
print "所需时间: " end - start "毫秒";
# 从 1 到 1000000 的偶数和是: 249999500000
# 所需时间: 847 毫秒
print "--- 内存使用情况 ---"
initial_memory = (grep VmRSS /proc/self/status)
let start=time.stamp_ms();
let sum=0; for i in 0..1000001 {
set sum = sum + i
};
let end=time.stamp_ms();
final_memory = (grep VmRSS /proc/self/status)
print "从 1 到 " count " 的总和是:" sum
print "初始内存使用:" initial_memory kB
print "结束时内存使用:" final_memory kB
print "内存使用变化:" final_memory - initial_memory kB
print "所需时间: " end - start "毫秒";
# 初始内存使用: 6120 kB
# 结束时内存使用: 6104 kB
# 内存使用变化: -16 kB
# 所需时间: 612 毫秒
print "--- cpu性能 ---"
let start=time.stamp_ms();
let j=1; for i in 1..count {
i * i
};
let end=time.stamp_ms();
print "所需时间: " end - start "毫秒";
# 所需时间: 408 毫秒
# -----v0.3.7重构后----
#
# --- 循环求和For ---
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 199 毫秒
# --- 循环求和While ---
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 340 毫秒
# --- 循环+条件判断 ---
# 从 1 到 1000000 的偶数和是: 249999500000
# 所需时间: 292 毫秒
# --- 内存使用情况 ---
# 从 1 到 1000000 的总和是: 500000500000
# 初始内存使用: 6000 kB
# 结束时内存使用: 6092 kB
# 内存使用变化: 6092 kB
# 所需时间: 195 毫秒
# --- cpu性能 ---
# 所需时间: 178 毫秒
# ------------------------
# ------v0.4.1重构后---
# --- 循环求和For ---
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 411 毫秒
# --- 循环求和While ---
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 839 毫秒
# --- 循环+条件判断 ---
# 从 1 到 1000000 的偶数和是: 249999500000
# 所需时间: 619 毫秒
# --- 内存使用情况 ---
# 从 1 到 1000000 的总和是: 500000500000
# 初始内存使用: 6160 kB
# 结束时内存使用: 6112 kB
# 内存使用变化: 6112 kB
# 所需时间: 404 毫秒
# --- cpu性能 ---
# 所需时间: 389 毫秒
# ------v0.5.7重构后
# --- 循环求和For ---
#
#
# 从 1 到 1000000 的总和是: 500000500000
# 所需时间: 187 毫秒
# --- 循环求和While ---
#
#
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 349 毫秒
# --- 循环+条件判断 ---
#
#
# 从 1 到 1000000 的偶数和是: 250000500000
# 所需时间: 274 毫秒
# --- 内存使用情况 ---
#
#
# 从 1 到 1000000 的总和是: 500001500001
# 初始内存使用: VmRSS: 6088 kB kB
# 结束时内存使用: VmRSS: 6120 kB kB
# 内存使用变化: VmRSS: 6120 kB kB
# 所需时间: 193 毫秒
# --- cpu性能 ---
#
#
# 所需时间: 193 毫秒
# --- 循环求和For ---
# 从 1 到 1000000 的总和是: 500000500000
# 所需时间: 374 毫秒
# --- 循环求和While ---
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 802 毫秒
# --- 循环+条件判断 ---
# 从 1 到 1000000 的偶数和是: 250000500000
# 所需时间: 578 毫秒
# --- 内存使用情况 ---
# 从 1 到 1000000 的总和是: 500001500001
# 初始内存使用: VmRSS: 6140 kB kB
# 结束时内存使用: VmRSS: 6008 kB kB
# 内存使用变化: VmRSS: 6008 kB kB
# 所需时间: 375 毫秒
# --- cpu性能 ---
# 所需时间: 366 毫秒
# ------- v0.11.3 ----------
# --- 循环求和For ---
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 385 毫秒
# --- 循环求和While ---
# 从 1 到 1000000 的总和是: 499999500000
# 所需时间: 730 毫秒
# --- 循环+条件判断 ---
# 从 1 到 1000000 的偶数和是: 249999500000
# 所需时间: 546 毫秒
# --- 内存使用情况 ---
# 从 1 到 1000000 的总和是: 500000500000
# 初始内存使用: VmRSS: 6072 kB kB
# 结束时内存使用: VmRSS: 6072 kB kB
# 内存使用变化: kB
# 所需时间: 385 毫秒
# -------- v0.11.4 ---------
从 1 到 1000000 的总和是: 499999500000
所需时间: 114 毫秒
从 1 到 1000000 的总和是: 499999500000
所需时间: 326 毫秒
从 1 到 1000000 的偶数和是: 250000000000
所需时间: 111 毫秒
从 1 到 1000000 的总和是: 500000500000
初始内存使用: VmRSS: 6076 kB kB
结束时内存使用: VmRSS: 6072 kB kB
内存使用变化: VmRSS: 6072 kB kB
所需时间: 113 毫秒
所需时间: 36 毫秒
# -------- v0.11.5 ---------
从 1 到 1000000 的总和是: 499999500000
所需时间: 183 毫秒
从 1 到 1000000 的总和是: 499999500000
所需时间: 314 毫秒
从 1 到 1000000 的偶数和是: 249999500000
所需时间: 256 毫秒
从 1 到 1000000 的总和是: 500000500000
初始内存使用: VmRSS: 6072 kB kB
结束时内存使用: VmRSS: 6072 kB kB
内存使用变化: kB
所需时间: 173 毫秒
所需时间: 160 毫秒
# -------- v0.16.5 ---------
从 1 到 1000000 的总和是: 499999500000
所需时间: 255 毫秒
从 1 到 1000000 的总和是: 499999500000
所需时间: 339 毫秒
从 1 到 1000000 的偶数和是: 249999500000
所需时间: 301 毫秒
从 1 到 1000000 的总和是: 500000500000
初始内存使用: VmRSS: 2560 kB kB
结束时内存使用: VmRSS: 2652 kB kB
内存使用变化: VmRSS: 2652 kB kB
所需时间: 225 毫秒
所需时间: 124 毫秒