[plt-scheme] Iteration Performance
At Fri, 27 Feb 2009 12:04:33 -0700, Doug Williams wrote:
> Iteration Performance
> [...]
>
> Doing my own dispatching for vectors, lists, and general sequences is faster
> for vectors and lists - enough so that I would likely use it. [I suppose I
> could hide it in a macro.] But, does it make sense for 'for' itself to do
> such dispatching internally for the common types? That is, generate the
> equivalent of a cond around the fast code cases (e.g., vectors and lists)
> with an else for the general case?
I'm not sure. A macro shouldn't indiscriminately duplicate code, such
as a loop body in `for'. But maybe there's a way to expand that
encourages inlining by the compiler when the body is small. I'll think
about this more, and I'm open to further advice/suggestions.
> I was also surprised at how slow iteration over vectors is. It seems like it
> would be pretty much as fast as lists - it should just need to stride down
> the vector.
This is puzzling. Vectors are a little faster than lists on my machine.
Can you say more about your test environment (machine, DrScheme vs.
MzScheme, language settings if DrScheme, etc.)
> Sequence Operations
>
> Has anyone written any general sequence operations already?
Not as far as I know.