トップ «前の日記(2008-11-29) 最新 次の日記(2008-12-01)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|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|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|

ToDo:


2008-11-30

_ rand

まぁ rand は無いってのはそうだと思う。

http://blog.bugyo.tk/lyrical/2008/11/cdiv-1.html

#include <stdio.h>
#include <stdlib.h>
int main(int argc)
{
    int i, j, sum = 0;
    int x = rand()%3+3;
    int y = argc + 10;
    for (i=0; i<10000000; i++) {
    for (j=0; j<10; j++) {
#if 1
        div_t d;
        d = div(x, y);
        sum += d.quot;
        sum += d.rem;
#else
        sum += x / y;
        sum += x % y;
#endif
        x++; y++;
    }
    }
    printf("%d\n", sum);
    return 0;
}

とかでやってみた。

./a.out  0.83s user 0.00s system 97% cpu 0.845 total
./a.out  0.61s user 0.02s system 95% cpu 0.661 total

で div 使わない方の勝ちだった。 アセンブリ見た感じ div は関数呼んじゃってるなぁ 除算はきちんと一回になってるし。

まぁ除算きちんと最適化できるのに div なんてレアなものを builtin にする意味ないって感じかなぁ。

一応 gcc/builtins.c 見ても div ぽいのは無かった。

あとベンチマークの後は妥当ぽいか確認する手段として、 クロック数を概算してみるとかいいと思う。 1秒程度かかってるんならループ1回に数百クロックくらいかかってる感じで、 除算だけでそれはちょっと無いよなぁみたいなそういう。

(00:43)

_ メンバ250

くらいならいじったことあるなあ。 あれは苦痛に満ち満ちていた。

http://www.kt.rim.or.jp/%7ekbk/zakkicho/08/zakkicho0811c.html#D20081127-6

それはそうとまさに構造体のダンプのために こいうもの作った過去があるわけですが

http://d.hatena.ne.jp/shinichiro_h/20051230#1135939355

今も動くかは知らぬー

うむ 64bit linux では動かん。 今度なおすかなあ。

(05:48)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2008年
11月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
1.shinh(2014-05-24 01:26) 2.kodera(2014-05-24 01:26) 3.kodera(2014-05-24 01:26)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h