新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
C/400での高速化 KS さん [ 1月23日(月) 11時0分 ]

    こちらのC/400での読み取り高速化テクニックの調査の為、70万件のレコードを全件
    読み込みして時間を計測する実験を行いました。

    1)C/400で _Rreadnのレコード読み取りバッファにNULL
     1分10秒
    2)C/400で _Rreadnのレコード読み取りバッファを指定
      1分10秒
    3)ILE-RPG
     1分08秒

    で、RPGが一番早いという結果が出ました。1)が一番早いと聞いていたのですが、何か方法
    があるのでしょうか?

    ちなみに1)のソース(抜粋)は以下です。

    fp = _Ropen("XXXXXXXX/XXXXXXXX", "rr");                    
    if (fp == NULL) {                                         
        printf("Open failed for open filen");                
    }                                                         
    memset(buff, 0, sizeof(buff));                            
    while(1) {                                                
        iofb = _Rreadn(fp,NULL, MAX_LEN, __DFT);              
        if (iofb->num_bytes == EOF) break;                    
        memcpy(buff, (char*)(*(fp->in_buf)), fp->buf_length); 
        buff[fp->buf_length] = 0x00;                          
    }                                                         
    _Rclose(fp);                                              
                                                              
    よろしくお願いします。

    RE:C/400での高速化 IKD さん [ 1月23日(月) 12時9分 ]

      鋭いご指摘です。
      MAX_LEN をレコード長に一致させても改善されないかどうか
      お試しください。
      結果をお知らせ頂ければ幸いです。

    RE:C/400での高速化 KS さん [ 1月23日(月) 12時31分 ]

      MAX_LENをレコード長に一致させてみましたが、改善されませんでした。
      以下は、結果です。

      1)C/400で _Rreadnのレコード読み取りバッファにNULL
      1回目 1分15秒
      2回目 1分13秒

      2)ILE-RPG
      1回目 1分02秒
      2回目 0分57秒

      こちらの実験結果では、C/400での高速化を計る要因は別にありそうな
      気がします。
      よろしくお願いします。

お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス