コードパーサーの性能アップに取組中
10数行程度なら問題ないが、ちょっと多くなると動きが非常に悪い。
それもそのはずで、あれはまだ調整中のものなのですよ。
「とりあえず動けばいい」ということでリリースしてそのまま今に至る。
プログラム的にはすごい手抜きで、テキストを変更するようなアクション(キー入力など)があると、そのたびに全てのテキストの色変更をやり直す。
こりゃ、当然遅くなる。
変更箇所だけ、再描画すればいいのだが、その「変更箇所」を見つけるのが結構難しい。
例えば、ある1文字を削除すると、その行は当然再描画だが、その前後も色が変更になっている可能性がある。
さらに、範囲指定で追加、削除した場合なども考えると、ものすごく複雑で頭がごちゃごちゃしてしまった。
なんなわけで、「えーい、もう全部再描画!!」の勢いでやってしまった。。。
「必要な部分だけ」というのは相変わらずごちゃごちゃだが、ちょっと考え方を変えてみることにした。
つまり、キー入力中は再描画を行わず、キー入力が終わった時点でまとめて行うという考え方。
それには、再描画の部分をスレッドにして、再描画中にキー入力があったら、とりあえず処理を中断する。
キー入力がなくなった頃に再描画実行すれば、いいのではないか?
ただ、swingはスレッドに対応していないので、swingにより画面更新が終わった後に行わなければならない。
しかし、こっちの処理も頭がごちゃごちゃする。。。。
それもそのはずで、あれはまだ調整中のものなのですよ。
「とりあえず動けばいい」ということでリリースしてそのまま今に至る。
プログラム的にはすごい手抜きで、テキストを変更するようなアクション(キー入力など)があると、そのたびに全てのテキストの色変更をやり直す。
こりゃ、当然遅くなる。
変更箇所だけ、再描画すればいいのだが、その「変更箇所」を見つけるのが結構難しい。
例えば、ある1文字を削除すると、その行は当然再描画だが、その前後も色が変更になっている可能性がある。
さらに、範囲指定で追加、削除した場合なども考えると、ものすごく複雑で頭がごちゃごちゃしてしまった。
なんなわけで、「えーい、もう全部再描画!!」の勢いでやってしまった。。。
「必要な部分だけ」というのは相変わらずごちゃごちゃだが、ちょっと考え方を変えてみることにした。
つまり、キー入力中は再描画を行わず、キー入力が終わった時点でまとめて行うという考え方。
それには、再描画の部分をスレッドにして、再描画中にキー入力があったら、とりあえず処理を中断する。
キー入力がなくなった頃に再描画実行すれば、いいのではないか?
ただ、swingはスレッドに対応していないので、swingにより画面更新が終わった後に行わなければならない。
しかし、こっちの処理も頭がごちゃごちゃする。。。。
Comments
ロレックスコピー、シャネルコピー、エルメス コピー、ルイヴィトンコピー、グッチコピー、 IWCコピー 時計、ブランド時計コピー,ブランドバッグコピー, ブランド財布コピー等N級品販売通販。
ブランドコピー価格及び時計バッグ財布情報を提供致します販売専門ショップ。
「 安 全・安 心・信 頼 」
シャネル ピアス 横浜 https://www.watchsjp.com/copy-12793.html