On Fri, 17 Jul 2009, Kevin Grittner wrote:
> I've seen the code in Java outperform the same code in optimized C,
> because the "just in time" compiler can generate native code optimized
> for the actual code paths being taken rather than a compile-time guess
> at that, but a factor of 100? Something else has to be going on here
> beyond an interface layer. Is this all in RAM with the Java code,
> versus having disk access in PostgreSQL?
Yeah, it does seem a little excessive. The Java code runs all in RAM,
versus Postgres running all from OS cache or Postgres shared buffer (bit
hard to tell which of those two it is - there is no hard drive activity
anyway). The Java code does no page locking, whereas Postgres does loads.
The Java code is emulating just the index, whereas Postgres is fetching
the whole row as well. However, I still struggle to accept the 100 times
performance difference.
Matthew
--
What goes up must come down. Ask any system administrator.