ResultSet.getBinaryStream nothing more than a ResultSet.getBytes() call?
От | Jeffrey Tenny |
---|---|
Тема | ResultSet.getBinaryStream nothing more than a ResultSet.getBytes() call? |
Дата | |
Msg-id | 4161D9EF.9030202@comcast.net обсуждение исходный текст |
Ответы |
Re: ResultSet.getBinaryStream nothing more than a ResultSet.getBytes()
|
Список | pgsql-jdbc |
I've been working to minimize the memory footprint of my application. I was under the impression that ResultSet.getBinaryStream would be more efficient than getBytes(). Certainly the documented semantics imply that that is a goal (since you must process the InputStream from getBinaryStream before the call to ResultSet.next() or even processing the next column. But the following trace from a java heap profile suggests that we're still just copying the bytes from the resultset as with getBytes() instead of streaming the ones already in memory, though perhaps it's because I'm using a read(buf) call on the stream. Anybody got an authoritative answer? Or if you point me at a 8.0DEV driver tarball I'll look myself, but I don't run CVS and couldn't find a tarball on gborg. TRACE 18107: org.postgresql.util.PGbytea.toBytes(PGbytea.java:29) org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBytes(AbstractJdbc2ResultSet.java:1986) org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBinaryStream(AbstractJdbc2ResultSet.java:2115) org.apache.commons.dbcp.DelegatingResultSet.getBinaryStream(DelegatingResultSet.java:221) Thanks...
В списке pgsql-jdbc по дате отправления: