私は C で文字頻度関数を実装しようとしています。もちろん、このタスクは非常に単純です。文字列をループして次のようにインクリメントするだけです。
for(cycle = 0; cycle < length; cycle++){
integer = line[cycle];
bins[ integer*length+cycle ]++;
}
これを10億回以上行うと(私のファイルはそれほど大きいです)、配列に10e8 *の長さの時間アクセスする必要があるため、プログラムのこの部分はかなり時間がかかります。
私はしばらくの間グーグルで検索し、レジスタを使用して加算、乗算、除算などを行う方法の十分な例を見つけましたが、SSE、MMX などに少しでも精通していないため、文字を実装する方法がわかりません。これらの関数を使用してカウントします。
4 文字を同時に読み取ることができるので、この関数にかかる時間を短縮したいと考えています。正しい方向に私を見せてください、またはコードを提示してください。
前もって感謝します。マーク