Re: patch: improve oracle performance on sbcl and cmucl

Kevin Rosenberg <kevin-HJRc7zDS/[email protected]> Sun, 13 Nov 2005 02:16:38 -0700
Newsgroups gmane.lisp.clsql.devel
Message-ID <[email protected]>
James Bielman wrote:
> Due to a lack of inlining and type declarations, the Oracle
> backend currently conses like it's going out of style on SBCL
> and CMUCL.

That's not too surprising. I only worked on the backend enough to have
it pass all of the test suite and never did any real work on
performance optimizing for sbcl/cmucl drastic need for type declarations.

> The following patch improves the situation quite a bit, by
> inlining all the OCI functions (both the raw ones and the error
> checking wrappers).  Also, the SHORT-ARRAY type was missing a
> NIL dimension---after fixing the type definition I was able to
> uncomment the type declaration in FETCH-ROW; this change alone
> reduced the time for my test query by about a factor of six!

Yay - a big win!

> I've tested the patch on SBCL x86 and x86-64 Linux, SBCL darwinppc,
> LispWorks 4.3.7 x86, and OpenMCL/darwinppc, and the testsuite doesn't
> appear to fail any additional tests.  I am going to try to fix the
> Oracle tests that fail as well in another patch.

Hmm. That's odd. The last time I tested the backend was around CLSQL
3.1 with using 9g and 10i. At that time, it passed all of the test
suite. I think I accepted one patch since then, which was untested by
me. Perhaps something changed in the upper layers of CLSQL that
affected the test suite on the Oracle backend.

Kevin