Note

サイト
最近のコメント
 | 

2004-06-16

[] 中間報告

行番号表示、スクロール、色分け、「以外」は作り直しました。
色分け以外ができたらalpha-31にしたいと思います。

「行」を管理しなくなりましたので、だいぶすっきりした反面、行番号やスクロール関係どうしましょうね?状態です。

とりあえず、30M強のファイルの先頭部分でも、我慢できる程度には動きます。ギャップの移動はやはり時間がかかっているようですが…。やねうらおさんにいただいたコメントのように、MMX転送にしたら改善されるのでしょうか?いや、そんなことよりも、時々起こるアクセス違反の原因究明が先です。(;_;

色分けは、速度を稼がないといけませんので、前に書いたようにDFAを勉強してからにします。

書くようなネタが無いのがばれてしまいますね(^^

[] MMXリンク集

MMXは実は使ったことがないのでメモ

Delphi6以降はインラインアセンブラがMMX対応、っと。

MMXの解説は以下のページがわかりやすいです。

http://www1.kcn.ne.jp/~robe/pf/pf009.html

Delphiの例。インラインアセンブラでMMXが使えなかった時代のものですので機械語を数値で埋めこんでますね。

http://forum.nifty.com/fdelphi/samples/00877.html

movups movntpsという128ビット転送も初めて知りました。

http://www.azillionmonkeys.com/qed/blockcopy.html

Athlon用?いや、SSEだからPentium3でも使える?よーわからんですが一回暴走させれば済む事。でもネット上のソースはMovQが多いですね。

最後の手段リンク。読みたくないです。

http://www.intel.co.jp/jp/developer/design/pentiumiii/manuals/index.htm

これぐらい残しておけば、万が一、突発性MMXにしたい病にかかってもすぐに取り掛かれるでしょう。

あと、どれぐらい速くなるか。他人の成果は積極的に参照すべし、とかてきとーなことほざいて実測をさぼります。(^^

http://www.cyborg.ne.jp/~xelf/developer/MemoryCopy.html

えーと…

http://d.hatena.ne.jp/shinichiro_h/20040616#p1

わざわざ実測してくださった様子。ありがとうございます。

MinGWを使ってPentium3で走らせますと、上から、4746, 3004, 4586, 4456, 3384で、やはりmovntqが最速でした。(しかしmemmoveが3414なんて数字を叩き出しましたので、MMX化してもあまり意味無さげ…)

yaneuraoyaneurao 2004/06/16 19:18 MMX用に256バイトの転送ルーチン展開しといて、端数だけ最後に処理するようにすれば、strcpy等にくらべれば2〜3割程度は速いです。ただまあ、バス性能とかが関わってくるので劇的には変わらないですけど。テキストエディタならばまあそのへんチューンするよりは先にやることが他にいっぱいありそうではありますネ(^^;

ytqwertyytqwerty 2004/06/16 20:58 ですね。恐らくレイアウトルーチンを高速化した方が効きそうです。あと、ギャップバッファにしましたのでキーリピート時の連続挿入にはついていけていますので、当面必要ないかもです。

 | 
カレンダー
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 |
Connection: close