[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 メーリングリストの案内