雑記帳

日常の出来事や、読んだ本のあらすじや感想など書いています。

行き詰ったらコーヒーブレイクしよう

2011-12-26 21:26:09 | コンピュータ
プログラムのデバッグに行き詰った時によく言われる
ことは「コーヒー飲んで一休み」です。
これはよく効くんですよ。
休んでいるのに却って能率が上がるのです。
やり続けていると堂々巡りになって抜け出せなくなって
しまうのです。
同じことをいくら繰り返しても新しい展開は望めません。
一休みした後は視野が広がります。
不思議なことに。

プログラムの修正をしていました。
Aというプログラムの中でBというプログラムを起動
させています。
AはBを起動させBの処理が終了するまで待機します。
Bの処理を除いたAの処理は修正前に較べて驚くほど
処理速度が上がりました。
ところがBは物理的に速度を上げることは不可能です。
今までは全体の速度からすればBの速度の遅さは
目だちませんでした。
修正後は目立ってしょうがありません。

なんとかできないかと考えました。
Bの処理を待っている必要はないことに気づきました。
AからBを起動させた後は両方が平行して走ればいい
のです。
処理を平行して走るように修正してテストしてみました。
ところがBの処理がぜんぜん実行されません。
待つか、待たないかだけの違いでBは同じ処理をする
はずなのになぜだ!と実に2,3時間考え込みました。

そこでコーヒーブレイクです。
やっとわかりました。
Bの処理が終了後、AがBの使用したファイルを削除
する部分があるのですが、待たない処理ではBが処理
する前にAがBの必要とするファイルを削除してしまう
のです。
視野を広げてよく考えればすぐわかることなのに
ぜったい正しい、うまくいかないのがおかしいのだ
と思いこむと正しい解答が得られません。

削除しないよう変更したら、裏でBが走るようになり
いい感じになりました。

行き詰ったら一休みすることですね。