[pgsql-jp: 25864] Re: DB 接続頻度の限界について

Satoshi Nagayasu snaga @ oak.forus.or.jp
2002年 5月 7日 (火) 20:20:28 JST


永安です。

Kenji Izumi wrote:
> > 1. localhost に inet socket 経由で PQsetdb()
> > 2. PQstatus() で CONNECTION_BAD を検出
> > 3. PQfinish()
> > 
> > というのを10,000回繰り返すプログラムですが、
> > 
> > % time ./a.out
> > 2.660u 5.820s 3:06.87 4.5%     0+0k 0+0io 183pf+0w
> > %
> > 
> > となりました。これによると、50回/秒以上は出てるようです。
> > エラーは一度も出ていません。
> 
> ↑申し訳ありませんが、出力結果の詳細な内容を教えていただけるとありがたい
> です。
> よろしくお願いいたします。

上記の通り、接続して切断する、というのを繰り返しているだけですので、
出力らしい出力はありません。エラーのときだけメッセージを表示するように
しています。

---------------------
  for (i=0 ; i<10000 ; i++) {
        conn = PQsetdb("localhost", "5432", "", "", "snaga");

        if ( PQstatus(conn)==CONNECTION_BAD ) {
          fprintf(stderr, "Connect failed. - %s", PQerrorMessage(conn));
          return -1;
        }

        if ( i % 1000 == 0 ) {
          fprintf(stderr, "%d", i);
          fflush(stderr);
        }
        if ( i % 100 == 0 ) {
          fprintf(stderr, ".");
          fflush(stderr);
        }

        PQfinish(conn);
  }
---------------------

とやっているだけです。
途中で、適当に回数を表示するようにはしてますが。

実は、現在作っているものがありまして、PQsetdb() と PQfinish() で
メモリリークが生じていないかを検証するために使っていたものです。

PQsetdb() と PQfinish() だけを繰り返すなら、毎秒50回くらいは
問題なく動いている、ということですね(私の環境では)。

-- 
NAGAYASU Satoshi <snaga @ oak.forus.or.jp>



pgsql-jp メーリングリストの案内