This stuff is still over my head; I'm at that "know just enough to be dangerous" stage. With that caveat:
Jay's blog post http://jeapostrophe.github.com/blog/2012/07/25/cont-marks2/ mentions that parameters can be >10X slower than dynamic-wind. In generator.rkt I notice an early version that didn't support multiple values. The new version does, keeping a "yielder" proc in a parameter. Could a single-valued generator yield be faster enough? Or am I misapplying my misunderstanding? :) On Sun, Sep 16, 2012 at 11:15 AM, Eli Barzilay <e...@barzilay.org> wrote: > Two hours ago, Patrick Useldinger wrote: >> Hello >> >> I have a Python program doing some intensive computing and would >> like to port it to Racket for performance reasons. >> >> I use a generator in Python which has a very low overhead. While >> writing some test programs, I seem to have an substantial overhead >> on using generators in Racket: >> [...] > > IIRC, Python optimizes generators in some ways when possible so when > they're used with loops there's no big overhead. The racket > generators are implemented with continuations and the cost that comes > with that is unfortunately pretty high. If you need performance, your > best bet is probably to translate things to `for...' loops if > possible. > > -- > ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: > http://barzilay.org/ Maze is Life! > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users