On Wed, 15 Nov 2006 19:04:10 -0800, "Mac Chan" emailmac@gmail.com wrote:
I then tried something like reading the whole buffer into a string and use the (parse-mime string) method instead of (parse-mime stream) (this is not a fix because if you upload 100mb file, it will allocate a 100mb buffer).
You could divide this in smaller buffers, but then it gets ugly. See below.
The result is worse...
Yes, as I conjectured in my previous email. The reason is that FLEXI-STREAMS currently has to read in octet-size steps anyway.
will investigate later. Also I plan do similar test with allegro-serve and see if it uses 100% cpu performing the same task.
I'm pretty sure it doesn't, mainly for two reasons:
1. For chunking and external format switching it uses AllegroCL's built-in "simple streams" - you're unlikely to beat that with portable Gray stream solutions like Chunga and FLEXI-STREAMS.
2. Lots of AllegroServe's source (to me) look like C code with parentheses around it - pre-allocated buffers and all that stuff. That's probably good for performance, but it's not the road I want to go.
Cheers, Edi.