932 :
デフォルトの名無しさん:2013/02/23(土) 21:44:59.02
Tkの部品はconfig命令を使うと色や形の現在値は変更できるが、Tkは高速化の為に画面への反映は遅延表示させているので途中経過を表示せずにいきなり最終結果が表示されたりする。
プロバー表示では現在値を強制表示させる為にupdate命令を使うのが定石だがこれが禁じ手になると結構難しいか。
@930番さんの様にまとめて一発表示
Aupdate命令間隔をを10秒置きとか極端に長くする
Bその他の部品はforgetオプション等で退避しておいて後で表示
C?
ところでTkのtext表示は普通はそんなに遅くはないが改行文字なしの長い行を表示させると異様に遅くなるみたい。
SSD環境なので参考にならんかもしれませんが、2000文字x5000行のファイルでは、
5行おきのアップデートにすると秒単位で高速化されました。
それでもプログレスバー表示しない場合の11.5倍時間がかかりました。
create_file: 483288 microseconds per iteration
gets_lines: 271409 microseconds per iteration
read_bulk: 252275 microseconds per iteration
test_full_update: 5123759 microseconds per iteration
test_skip_update: 3374500 microseconds per iteration
test_no_update: 291779 microseconds per iteration
test_bulk_insert: 285029 microseconds per iteration
最初にファイルサイズ取得して、サイズに応じてupdateする行数変更するとか。
5000行のファイルに5行おきにプログレスバーを更新するってのが...
すまん関数名同じだからかんちがいした
fib 38は固まるわ
937 :
デフォルトの名無しさん:2013/03/12(火) 22:01:59.60
>935
私の中古機械で試してみた。式をまとめると約10倍速くなった
どうしてこんなに違うのか??
fib <39088169> term <80312600 microseconds per iteration>
proc fib {n} {
if {$n < 2} { return $n }
return [expr {[fib [expr {$n - 1}]] +[fib [expr {$n - 2}]]}]
}
fib <39088169> term <714145387 microseconds per iteration>
proc fib {n} {
if {$n < 2} { return $n }
set a [expr $n - 2]
set b [expr $n - 1]
set x [fib $a]
set y [fib $b]
return [expr $x + $y]
}
>>937 exprの引数を{ }で囲むだけでだいぶ違うな
初心者が初心者に嘘を教えるスレです
exprの引数を{ }で囲むのは8.6以前からの定石。
2回評価させないようにする。
941 :
デフォルトの名無しさん:2013/03/23(土) 22:06:55.05
937です。より速くより汚く
proc fib {n} {
if {$n < 2} { return $n }
return [expr {[fib [incr n -2]] +[fib [incr n ]]}]
}
fib <39088169> term <72891401 microseconds per iteration> でした。
935 引用のページからC++を複写してVisualC++Express2008(要するに無料ソフト)を使って実行してみた
fib44=701408733
fib45=1134903170
fib46=1836311903
fib47=-1323752223
fib48=512559680
tcl/tk(ver8.5.13)でfib47 は
fib <2971215073> term <1253824233 microseconds per iteration>
1254秒!!。鈍足で正確でした。なっとく
速度、精度、価格、安直さ、どれも一つの側面でしかなく、それらを総合的に評価して最適ソフトを選択することが肝要だと思う。
942 :
929:2013/03/24(日) 10:09:02.93
ありがとうございます。規制されてて遅くなりました。
progressbarはupdate idletasksで表示が更新されましたが、古いPCのWindowsXPでは5〜6秒程度updateしないと
メニュー部分が白くなって、その後はprogressbarも更新されなくなります。(update idletasksではダメ)
ということで、数秒おきにupdateしないとprogressbarが更新されません。
見た目を重視しているので無駄はあきらめることにしました。
943 :
デフォルトの名無しさん:2013/03/31(日) 08:08:41.45
Tcl/Tk 8.4.20予告 6/1(随分さきの話だが)に最終版リリース予定らしい。まだ8.4.を改良してたのか。
Tcl/Tk 8.4.20 Release Announcement
June 1, 2013
The Tcl Core Team is pleased to announce the 8.4.20 releases of the Tcl
dynamic language and the Tk toolkit. This is the twentieth and *FINAL*
patch release of Tcl/Tk 8.4. With this release, support for Tcl/Tk 8.4
comes to an end.
944 :
デフォルトの名無しさん:2013/04/03(水) 22:36:01.28
Tcl/Tk 8.5.14 Release Announcement
April 3, 2013
>>5の予想を裏切り2014年まで持つ勢いだが、
ActiveTcl 8.6.1.0とTclDevKit 6.0の登場が変えてくれることを願う。
あ
947 :
デフォルトの名無しさん:2013/04/20(土) 09:26:55.27
まだTCLなんてあったんだ。10年前に学校の授業で使ったのが懐かしい。
まだTCLなんてあったんだ。20年前に学校の授業で使ったのが懐かしい。
949 :
デフォルトの名無しさん:2013/04/20(土) 10:29:53.36
まだTCLなんてあったんだ。30年前に学校の授業で使ったのが懐かしい。
30年前には存在しない
951 :
デフォルトの名無しさん:2013/04/20(土) 10:47:05.42
おーまいがー
953 :
デフォルトの名無しさん:2013/05/07(火) 12:31:39.81
age
Tcl/Tk 8.4.20 final patch release
code.activestate.com/lists/tcl-core/13294/
海外ですらもtkはディスられていた。
TKは衰退しました
そろそろ次スレ立てた方がいいと思う
961 :
デフォルトの名無しさん:2013/07/18(木) 08:06:34.35
保守あげ
うげ
963 :
デフォルトの名無しさん:2013/07/24(水) 11:09:51.29
うめとくか
964 :
デフォルトの名無しさん:2013/07/24(水) 11:10:44.30
う
965 :
デフォルトの名無しさん:2013/07/24(水) 11:11:50.50
め
966 :
デフォルトの名無しさん:2013/07/24(水) 11:14:17.85
と
く
ぬ
マンコ
う
め
973 :
デフォルトの名無しさん:2013/08/02(金) 08:41:36.52
2020年まで持たなかったなw
前スレは4年半も持ったので、このスレも2012年くらいまではいけるという予言
↓
このスレは6年2か月も持ったので、次スレも2020年くらいまではいけるという予言
↓
次スレは流産だったので、次々スレもいつ落ちるか判らないという予言
こうですね
975 :
デフォルトの名無しさん:2013/08/02(金) 09:16:18.45
>いつ落ちるか判らない
って予言ちゃうし
976 :
デフォルトの名無しさん:2013/08/02(金) 10:24:15.69
ume
天才チンパンジーのアイちゃんを召喚しなかったから落ちたんだな。
978 :
デフォルトの名無しさん:2013/08/02(金) 10:27:08.54
ume
979 :
デフォルトの名無しさん:2013/08/02(金) 14:23:42.34
埋め
次スレ消滅するの早過ぎだろ…