Need help compiling libgcj on Solaris for benchmark

Jeff Sturm jsturm@sigma6.com
Mon Jun 7 13:32:00 GMT 1999


So replace "JDBC" with "most drivers implementing JDBC". Furthermore I
was talking mostly about type 4 (pure Java) drivers, which are the ones
most gcj users would be interested in.
Some of JDBC's overhead is directly attributable to the API. For
example, look at a typical ResultSet loop:
 ResultSet rs = statement.executeQuery("select id, name from
customer");
 while (rs.next()) {
 System.out.println(rs.getInt(1));
 System.out.println(rs.getString(2));
 }
The ResultSet object must allocate a new String for each row. Compare
that to an embedded C/SQL equivalent:
 int id;
 char name[20];
 $declare c1 cursor for select id, name from customer;
 $open c1;
 while (1) {
 $fetch c1 into $id, $name;
 if (sqlca.sqlcode == NOTFOUND) break;
 printf("%d", id);
 printf("%s", name);
 }
Here the string buffer is allocated once. JDBC however provides no
method to retrieve CHAR/VARCHAR results without allocating a new String
object. Consequently, object allocation is a big factor in JDBC
performance.
Olivier.Lefevre@wdr.com wrote:
>> JDBC is just a high-level API; there are many types of drivers
> implementing it, so I don't see how the blanket statement below could
> be true.
>> -- O.L.

-- 
Jeff Sturm
jsturm@sigma6.com


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /