[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/18 20:43 / Filesize : 166 KB / Number-of Response : 785
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C、C++の最適化について語るスレ 2



1 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 09:54:14 ]
コンパイラ性能、コンパイルオプション、コードの最適化などについて語りましょう。
主に速度面の最適化を中心としますが、サイズなどの最適化もどうぞ。
なお、OS、CPU、コンパイラなどは限定しません

前スレ

C、C++の最適化について語るスレ
pc11.2ch.net/test/read.cgi/tech/1084676298/


213 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 04:34:13 ]
>>212
実際にコンパイルしてアセンブリ出力を眺めてみれば?
前者は静的領域に確保されることが保障されていて消えることは多分ないが、
後者は最適化で消える可能性がある。
しかし、後者は静的領域からスタックにコピーする最悪なコードになるかもしれない。

それはさておき、100要素指定しておいて6個しかないと激しく無駄だと思う。

214 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 04:36:44 ]
>>212
メモリの節約にはならないだろう。

一般的な実装を予測すると、 static をはずしてもスタックに確保された配列を
初期化するためのコピー元となる配列が作られてしまう。この初期値の配列が
static をつけた場合に確保される実体と同等のはずなので、 static をはずすと
スタックの領域と初期化用コピーの処理時間が余計に増えるだけになる。

動作上の違いは、再帰呼び出ししたときに配列のアドレスが別物になるかどうか、
という点しかないはず。

はっきり言って逆効果だろう。そのルール決めた人に理由を問い詰めたほうがいい。

非 const な変数に限ってローカル static を禁止するのなら、メンテナンス性の観点から
まだ理解できる。

215 名前:デフォルトの名無しさん [2007/11/07(水) 04:56:45 ]
次に静的記憶域期間(static)です。

こちらは宣言されている場所にかかわらずプログラムの開始直前にメモリを確
保し初期化します。初期化を忘れた場合値は0になります。
また、確保された領域はプログラムが終了するまで保持されるので関数の終了
時に値が消えることがありません。2回目以降関数内のstaticオブジェクトを
利用するときは前回の値から始まります。


216 名前:デフォルトの名無しさん [2007/11/07(水) 05:00:13 ]
もっとも時間食っているところ、メモリ食っているところを押さえればよい
あとはいちいち細かいモジュールに制限加えることはない

217 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 10:01:37 ]
>>212
逆(実際はstatic推奨)か、厳しいのはスタックか。

218 名前:デフォルトの名無しさん [2007/11/07(水) 10:40:48 ]
400バイトくらいで厳しいのかよ
2M = 2000000バイトくらいは使用できるんだろ? 400を繰り返し使ってメモリリークするとかなら
考慮するひつようあるだろうけど使用後に解放されるなら他のプログラムに影響しないと思うが
500K = 500000バイトくらい使うところから節約しろよ

219 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 10:54:42 ]

for (int i=0;i<100;i++)
a[i]=b[i]*xx;

だと問題なくベクトル化されるのですが

for (int i=0;i<100;i++)
a[i]=a[i]*xx;

だと
 remark: loop was not vectorized: dereference too complex.
となってベクトル化されません。
自分自身が式の中に入っているとベクトル化できないのでしょうか?
コンパイラはicc ver 10で、OSはFedora 7です。

220 名前:デフォルトの名無しさん [2007/11/07(水) 11:05:35 ]
ベクトル化がわからない
配列に掛け算できないならコンパイラが壊れている

221 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 11:08:34 ]
>>219
非常にシンプルなサンプルを作って試したら、どちらのケースもベクタ化できるようだよ。
配列aが何か特殊なことになってないかい?
再現できるソースは貼れないかな?



222 名前:212 mailto:sage [2007/11/07(水) 20:11:28 ]
ありがとうございました。
私は開発機でコンパイルする権限も無い下っ端なのですが、
腑に落ちなかったモヤモヤが少し晴れました。


223 名前:デフォルトの名無しさん [2007/11/10(土) 05:11:33 ]
ループを200回くらい繰り返すとき、全部展開しておいた方が速いですか
インライン展開とかも出来て
あと、1万回するときに100回と100個展開した方が良いですか?

224 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 05:14:18 ]
>>223
余計なことせずにコンパイラに全て任せるのが正解だ。

225 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 05:17:58 ]
基本がなってない奴は気にするだけ無駄

226 名前:デフォルトの名無しさん [2007/11/10(土) 06:01:10 ]
誰かいませんか!
助けてください!!

227 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 06:04:49 ]
どうしたの

228 名前:デフォルトの名無しさん [2007/11/10(土) 06:08:40 ]
スレ違いかもしれませんが
C言語の宿題がわからなくてこまってます!

明日ってか今日までなんです〜
一緒に考えてくれる人いませんか?
お願い助けて〜

229 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 06:28:53 ]
宿題スレで聞けば?






って既にマルチしてるな。

230 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 17:18:26 ]
staticだとスレッドセーフじゃなくなるよね?


231 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 17:20:17 ]
場合による



232 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:43:45 ]
>>230
読み込みのみなら気にしなくていい
書き込みが絡む場合はスレッドセーフではない
手軽にスレッドセーフにしてくれる拡張構文も最近はあったりする
(スレッドローカルストレージ)


233 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 08:05:03 ]
>>232
初期化のときに問題にならない?


234 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 08:42:09 ]
static変数の初期化より先にどこかでスレッド走らせ始めるつもりか

235 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 10:03:36 ]
お前ら Binary Hacks の Hack 37 読むといいですよ

236 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 11:48:44 ]
今日Binary Hacks買ってきたにょー
予定つまってて2週間ほど読めないけど…

237 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 12:42:42 ]
Linux系の本だと思ってスルーしてたけど、Windowsプログラミングにはどう?

238 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:04:29 ]
かったはいいがぱらぱらめくっただけな自分は
やはりLinuxの本という印象。

Windowsしかまともに開発してないから
あんまり楽しめなかった。


239 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 22:45:13 ]
mallocダメ絶対な俺としてはスタック領域の調べ方Windows版が載ってただけで大満足

240 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:21:09 ]
>>238
ありがとう。やっぱりそうか。

241 名前:デフォルトの名無しさん [2007/12/24(月) 08:55:43 ]
age



242 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:22:50 ]
newの遅さはどうしてる〜?

243 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:26:18 ]
pool allocator使う

244 名前:デフォルトの名無しさん [2008/01/01(火) 19:54:17 ]
あげ

245 名前:デフォルトの名無しさん [2008/01/14(月) 22:48:15 ]
V(・∀・)V


246 名前:デフォルトの名無しさん [2008/01/22(火) 15:39:00 ]
割る2、掛ける2はシフトを使うと速い。
これ豆知識な。

247 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 15:52:07 ]
俺のCPUは割り算よりシフトの方が時間かかるんだけど

248 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 16:53:00 ]
最近のCPUではよくあることだな。
「1足すならaddよりincの方が速い」とかも同様。

俺の様なジジイの豆知識はほとんど役に立たん。

249 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 16:57:45 ]
C/C++の範囲では、どっちがいいかなんてコンパイラの最適化に任せるのが正解。

250 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:22:31 ]
いや、それを言っちゃうとこのスレ終わっちゃう。
つうか、だから伸びないんだなorz

VCの吐くコードとか見てると感動するけど、時々「?」と感じるときがあるのも事実。
そういうのを減らすための豆知識とか、誰か披露してくれまいか。

251 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:51:09 ]
それじゃ、「?」と感じたものを挙げてみてくれ。可能な限り、説明しようじゃないか。



252 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:23:21 ]
inc は使うなというのは正式な資料に書いてあるが
>俺のCPUは割り算よりシフトの方が時間かかるんだけど
こういうCPUは寡聞にして知らない.教えてくれないか?

253 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:27:30 ]
割り算は普通遅いからね。

254 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:34:13 ]
定数の乗除は最適化してくれるんじゃないの?

255 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:42:07 ]
CPU はって言ってるからには
アセンブリで比較してると信じたいのだが・・・
C でやってる悪寒

256 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:18:22 ]
まあ、バレルシフタ持ってない CPU だと、それなりに時間かかるからな。

 3ビットのシフトの方が÷2より時間がかかる

と言う詭弁は可能かと。

257 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 03:30:02 ]
割り算を逆数近似で計算してればあり得る?
まともな割り算は必ずシフタ使うから普通はないが.

258 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:02:42 ]
デバッグで実行しての実測なんて意味がない、ただただ使う側のPCスペックと環境だけ

259 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:54:31 ]
何の話だ?

260 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 00:01:50 ]
foreachの最適化は無理無理無理無理いいいいいいいいいいいいいいいいいい

261 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 11:22:17 ]
PenrynだとRadix-16のおかげでdivのクロック数は最小で6
昔とはだいぶ違うよ



262 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 13:52:45 ]
>>261
あれ、14じゃね?

263 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:42:52 ]
if((a == 1) && (b == 1)){ asdf; } という処理は論理積 && を使っている以上、分岐が2つある
if(a == 1){ if(b == 1){ asdf } } に等しくて、これだと条件分岐が多くその分投機予想も外れる可能性があがるので
if((a == 1) & (b == 1)){ asdf; } にすべきだ、っていう話を聞いたんですが、これは本当なんでしょうか?
もしくは、そんな事は演算子がオーバーロードされていない限り明確に分かりきった事なので
あらかじめコンパイラが論理積を (a == 1) & (a == 1) と同等の処理に最適化してくれたりとかはないんでしょうか?

264 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:57:59 ]
>>263
実験してみた。最適化できるみたい。
$ cat test.c
void g(void);
void f(int a, int b) { if ((a == 1) && (b == 1)) { g(); } }
$ gcc --version
gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc -S -o - -Os test.c
.file "test.c"
.text
.globl _f
.def _f; .scl 2; .type 32; .endef
_f:
pushl %ebp
movl %esp, %ebp
cmpl $1, 8(%ebp)
sete %al
xorl %edx, %edx
cmpl $1, 12(%ebp)
sete %dl
testl %eax, %edx
je L1
popl %ebp
jmp _g
L1:
popl %ebp
ret
.def _g; .scl 3; .type 32; .endef

265 名前:264 mailto:sage [2008/01/29(火) 13:01:03 ]
>>263
使っているコンパイラでは結果が違うかもしれない。そういう環境で、且つ、実際に
そのレベルの高速化が必要ならビット AND への置き換えもありうる。ただしその場合は
しっかりコメントで実験結果に基づくコードだと添えておく必要があるだろうね。

266 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 13:11:04 ]
なるほど、ありがとうございます。

267 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:35:23 ]
実装が長くても1度しか呼ばれない関数って、普通最適化でインライン展開されますよね?

268 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:41:11 ]
試してみれば?

269 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:46:26 ]
インライン展開されます

270 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:46:55 ]
コンパイラによってはインライン関数がちゃんと展開できたか教えてくれるコンパイルオプションがあるよ
gccの話だけど

271 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:47:27 ]
ごめんなさい忘れてください



272 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:23:04 ]
同じ内容の関数を複数用意して使い分ける意味ってあるんでしょうか?

273 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:21:21 ]
>>272
唐突に質問されても何を聞きたいのか判りませんが。
同じ内容でも型が違う場合はC++ではテンプレート関数で一つで済ませることもできますが、
Cではできません。その辺りの話でしょうか?

274 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:30:48 ]
>>273
そうではなく、

void foo1(int hoge){};
void foo2(int hoge){};
void foo3(int hoge){};
中の処理も全く同一な関数です

オーバーロードだとかそういうのでも全くないです

275 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:35:21 ]
>>274
別に意味なんてないと思うが。訳が分からん。
typedef void (*func_t)(int);
とやっておいて、どこかでfunc_tの変数を宣言してそれらを代入し、
fptr1 = foo1;
fptr2 = foo2;
if(fptr1 == fptr 2){ ... }else{ .. }
として、処理は同じだけど違うものとして動作させたいと言うくらいしか思いつかないな。
意味があるかないか、どちらにしろそのソースコードを書いた人に直接訊いてみれば良い。

276 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:38:01 ]
ただのアホな作りなのか、後の仕変に対応するための措置なのか見極める必要はある。
現状で言えばまとめてしまって構わないとは思うが。

277 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:49:44 ]
I キャッシュの関係で、そういうのを最適化のために使えるケースというのはあった。リンカスクリプトも直す必要があるが。
多分違うケースなんだろうけど。

278 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:56:47 ]
>>272
目的があれば意味があるんじゃないの?

279 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:57:35 ]
string::size と string::length は全く同じメソッドだな。
文字列としては length という言葉を使う方がしっくりくるが、
コンテナとしての要件を満たすには size がないと困る。
なら両方作っちゃえって感じなんだろう。
こういう例ならありうると思う。

280 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:08:27 ]
ファイルやフォルダをコピーしたり消したり作ったり、.NETで言うFileInfoクラスやDirectoryInfoクラスを
自分で実装するのは.NETに頼らなくて済む、以外のメリットないのかなぁ・・
このまま行くと.net病になりそうだ・・・

どうすりゃ効率いいかなぁ・・

281 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:18:24 ]
既存のクラス使う方が仕事の効率は良さそうだな。



282 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:18:25 ]
微妙に誤爆・・だけど平気かぎりぎり・・・いやごめんなさい

283 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:20:15 ]
うひょー、れすがついちゃってた

>>281
Windows専用なら.NET全然良いかな、と思う
でも趣味でやってる分には微妙に素直に割り切れないというかなんというか


284 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:24:31 ]
というかそのFileInfoクラスだけならともかくさ、他にも色々必要だろ
言い過ぎの誇張表現になるけどそのすべてにおいてMS開発陣の書いたコード以上のものを書けるのかってことになる

つまり.NETを1箇所以上で使うなら出来得る限り.NETで実装を

285 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:25:36 ]
効率ってのが速度を表すなら、全ての.NETコードは効率が悪いことになる。

286 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:26:18 ]
個人でやる分には安心感はあるけどねえ

287 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:26:47 ]
>>279
lengthはsizeを呼ぶだけとかってなら、アリだね。
極力重複コードは避けるべき。


288 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:28:45 ]
うあー、こんなんにレスつけてくれてありがとうございます

>>284
コードの数割は.NETのを利用したもので、主要な処理の部分だけちょっとがんばって
頼らず書こうかなと思ってたんだけどそのままにしときます

289 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:15:21 ]
まあ.NETのあるクラスのすべてのメソッドをフル活用する状況ならいんじゃないかねえ

290 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 02:50:44 ]
>>287
重複コードは inline 関数のおかげで簡単に避けられるね。

Ruby とか同じ動作の別名関数が用意されてる事が多い。
A という言語では a という名前で、
B という言語では b という名前な関数を Ruby に作る時には、
a と b の両方の名前を採用しちゃえ、みたいな。

291 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:04:15 ]
そういえばC++には識別子のalias機能がないんだね。



292 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:12:28 ]
で、でふ

293 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:13:17 ]
変数は参照で、
関数はインライン関数で、
型は typedef で、
名前空間は namespace a = b; で、
クラステンプレートは継承でそれぞれ可能ではある。

ただ、インライン関数使うのと、
クラステンプレートを継承するのとは、
結構面倒臭い。

294 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 03:16:11 ]
このスレ地味に常駐多くないかい

295 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:27:22 ]
C++0xであるかも知れないが、テンプレートのエイリアスは作れないよな。

typedef std::vector my_vector;

みたいなの。>>293にも書いてある継承は可能ってレベルではない。
コンストラクタやらオペレータやら全部知っていて、尚かつ書かないといけない。

296 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:33:01 ]
オペレータは必要ないと思う。
コンストラクタは作らないとダメだけど。

297 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:55:01 ]
>>296これで例として成立してるか自身無いけど。
継承しちゃうとoperatorの返す型と継承した型が異なっちゃうからうまくいかない。

struct c {
  int v;
  c operator+(int n) {
    c t;
    t.v = v + n;
    return t;
  }
};
struct d:public c {};
main() {
  d e, f;

  f + 1; // OK
  e = f; // OK
  e = f + 1; // Error
}


298 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 14:01:54 ]
>>297
ああ、なるほど。
というか、色んな状況を考えると継承では不完全なのか。

299 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:10:51 ]
if(hoge.piyo == hogehoge.piyo)
 hoge.piyo = hoge.piyo & ~sym.att;

こんなのはこれ以上どうにもなりませんよね?

300 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:04:15 ]
分岐は無くせるけどね。
hoge.piyo = ~(sym.att & -(hoge.piyo==hogehoge.piyo) & hoge.piyo;

x86でPentiumPro以降に限定するなら
hoge.piyo = ~(hoge.piyo == hogehoge.piyo ? sym.att : 0) & hoge.piyo;
はCMOVになる可能性がある。

SSEで書けば次のようにも出来る。
// hoge.piyo = ~(sym.att & -(hoge.piyo==hogehoge.piyo) & hoge.piyo;
hige.piyo = _mm_andnot_ps(_mm_and_ps(sym.att, _mm_cmpeq_ps(hoge.piyo, hogehoge.piyo)), hoge.piyo);

ただSIMD以外は保守性が悪くなるだけであんま効果無いと思う。
実測した方がいい。

301 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:29:28 ]
>>300
なるほど・・-ってのを初めてみたんで調べてきます、ありがとうございます



302 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:44:47 ]
ANSI Cの仕様ではA==Bが真なら1になるから-1(全ビットON)にしてマスク作ってるだけだよ。
x86なら分岐せずにSETcc + NEGにコンパイルされるはず。

303 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:57:10 ]
偉そうな割には右括弧が足りないぞ。

304 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:00:29 ]
どの道やってること同じではないのか

305 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:36:34 ]
まぁ、>299程度ならコンパイラに任せて実測してみてからだな。
CMOVになったところで大した差は出ないだろ。

306 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:37:59 ]
Windows環境でのファイルなんかのコピーを大きくする手段ってないですよね・・

どのみちOSの機能頼りなわけだから

307 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:39:36 ]
コピーしたつもりがおっきくなっちゃうのかー。そりゃねーな。

308 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:41:01 ]
すんません、ガチで寝ぼけてる

早くする、ですほんとごめんなさいごめんなさいごえmんあい

309 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:43:14 ]
早くする手段ならいくらでもあるだろ。
速いかどうかは知らんが。

310 名前:デフォルトの名無しさん [2008/02/04(月) 13:48:24 ]
ストライピング
コードレベルの最適化とは無縁だが。

311 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:54:21 ]
高速化っていうんだから速くか

ストライピング、調べてきました
それだと送り先が2箇所なのかな・・・
コピー元も先も1箇所なんです

というかコードレベルって話じゃないですよね、把握しました



312 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:55:51 ]
単純にバッファをいじるとか

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet
/Control/Session Manager/Memory Management
ここの数値を

というか普通こんなことしねえよな・・

313 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:58:42 ]
>>311
実際問題、ファイルアクセスの速度はデバイス側の事情で決まってしまう。
と言うことで、単純に速くする方法はない。
寧ろ、本当にファイルコピーの時間が問題なのか、例えばレスポンスが問題なのか、検討した方がいい。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<166KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef