본문으로 바로가기

반복문 별 소요 시간 테스트

category Tcl & Tk/팁 (Tip) 2025. 3. 26. 16:46

katie34 님이 제공해 주신 팁입니다.


안녕하세요. Tcl/Tk언어로 속도에 관한 테스트를 하는 게 의미 있는 일은 아니지만, 다른 프로그래밍 언어 커뮤니티에서는 이런 테스트 결과를 가지고 이야기하는 것이 부럽기도 해서 저도 한번 해봤습니다.^^; PC환경은 2011 Macbook air이고, tcl8.6이며, 각 반복문별 5회씩 테스트했으며, 숫자 1~1억까지입니다 결과는 foreach(평균 43.4초), while(80초), for(106.2초)입니다. 예상(?)했던 대로 foreach가 가장 빨랐고, for문이 생각보다 시간이 많이 걸린다는 게 좀 의아했습니다.

# foreach test
set max_num 100000000
set start_time [clock seconds]
set i 1
while { $i <= $max_num } {
    lappend i_list $i
    incr i
}
set end_time [clock seconds]
set total_time [ expr $end_time - $start_time ]
puts $total_time
puts "foreach start"
set start_time [clock seconds]
foreach x $i_list {
}
set end_time [clock seconds]
set total_time [ expr $end_time - $start_time ]
puts $total_time
unset i_list
# for test
set max_num 100000000
set start_time [clock seconds]
set i 1
for { set i 1 } { $i <= $max_num } { incr i } {
}
set end_time [clock seconds]
set total_time [ expr $end_time - $start_time ]
puts $total_time
# while test
set max_num 100000000
set start_time [clock seconds]
set i 1
while { $i <= $max_num } {
    incr i
}
set end_time [clock seconds]
set total_time [ expr $end_time - $start_time ]
puts $total_time