From: Andreas F. <as...@bo...> - 2004-06-13 16:13:54
|
Today, Carlos Ungil <un...@ma...> wrote: > Dear SBCL developers, > > there is a change in the latest (0.8.11) release that makes sb-posix > terribly slow. Indeed. The change to make sb-grovel use alien structures caused that. The *STAT functions handle alien structures now (which need to be manually managed), and we decided to not change the interface, so it now creates an object in lisp space and copies the alien stat's elements there. I just tried the code you posted below, and by using the alien structure (for stat) directly, I could reduce run time for (tree "contrib/") to 0.044 seconds (from 20 seconds, on this machine). That might not be as fast as with the old code (haven't measured yet), but it might be satisfying. OTOH, it forces you to manually manage the objects that the stat call returns, which is pretty suboptimal. Perhaps I can cut a compromise between these two extremes (fast but icky interface, slow but lispy interface) by sticking a finalizer on a lisp object with a pointer to the alien. I'll keep you informed. Thanks for the report, -- Andreas Fuchs, <as...@bo...>, as...@ja..., antifuchs |