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
'Tcl & Tk > 팁 (Tip)' 카테고리의 다른 글
BLT의 barchart에 원 그리기 (0) | 2025.03.26 |
---|---|
gets vs read 대용량 파일 테스트 (0) | 2025.03.26 |
그라디언트 구현하기 (0) | 2025.03.26 |
Tcl로 구현한 텔넷 서버 (0) | 2025.03.26 |
텍스트 위젯 라인 넘버 및 Wrap 이미지 보여주기 (0) | 2025.03.26 |