Thanks for your response, very quick as always. I'll try flvectors first. It will be like writing fortran with racket syntax. I don't yet understand how a byte array can help me. I'll have to study the docs on this. Thanks, Jos
> -----Original Message----- > From: Matthew Flatt [mailto:[email protected]] > Sent: 04 January 2011 18:52 > To: Jos Koot > Cc: [email protected] > Subject: Re: [racket] gc and vectors > > You could use flvectors instead of vectors. If you feed > numbers extracted from `flvector-ref' directly into `fl' > arithmetic, and if you push numbers directly from `fl' > arithmetic back into `flvector-set!', that might save > allocation and speed things up. > > Otherwise, if you're spending so much time on GC, you might > tuning the GC by allocating and retaining a big byte array on > the side (which convinces the GC that it doesn't need to > collect so frequently, since you're willing to spend all that > memory on a byte array anyway). > > At Tue, 4 Jan 2011 18:36:35 +0100, "Jos Koot" wrote: > > I have a simple program using vectors of inexact numbers. > > Half the time goes to garbage collection. > > I suppose that's because vectors effectively are internally > arrays of > > pointers to the numbers. > > So reassigning an element to a vector may leave garbage. > > Do unsafe floating point vectors and operations use arrays without > > intermediate pointers? > > If that is the case I could speed up my program by a factor of 2. > > But before trying that I would appreciate advice. > > _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

