祝49回 C言語ならあっしに聞け
■ このスレッドは過去ログ倉庫に格納されています
0197デフォルトの名無しさん
NGNGプログラム名の長さによって実行速度が変わるというのは、
ごくごく簡単にいうと、以下のようなことであるらしい。
・プログラムが起動されたときにプログラム名をスタックに積む
・これをCではargv[0]で参照できる
・プログラム名の長さによって初期の(main突入直後の)スタックの伸張度合いが変わる
・ところで、x86系CPUでは、doubleにアクセスする場合、
それが8バイト境界以外の領域(8の倍数番地以外から始まる領域)に
置かれているとペナルティが発生する(実行速度が低下する)
・プログラム名の長さによってdoubleがスタックに積まれる位置が変動する
それは8バイト境界におさまらない場合ももちろんある
・したがってプログラム名の長さによって実行速度が低下する場合がある
えーと短く説明するためにかなりはしょってます。興味のある人は
http://quanta.synchem.kyoto-u.ac.jp/~maho/FreeBSD/FreeBSD_compiler.html
を参照のこと。
■ このスレッドは過去ログ倉庫に格納されています