RE: 2.4 weirdness -- first report

new topic     » goto parent     » topic index » view thread      » older message » newer message

On 23 Feb 2003, at 23:59, Andy Serpa wrote:

> 
> 
> Robert Craig wrote:
> > Andy Serpa writes:
> > > I sometimes get a machine-level crash with both 2.3 & 2.4.  I'm not
> > > doing any peeking or poking.  I cannot reliably reproduce this crash
> > 
> > Please send me the program. I'll try to reproduce it on
> > one of my machines here.
> > 
> 
> Sorry, can't.  It's huge, and is tied up with a big database.  I'll try 
> to come up with something leaner that is doing more or less the same 
> thing and see if I can get it to crash.
> 
> > > Now then, I have a free RAM indicator on my toolbar,
> > > and I can watch the amount of free memory go down as
> > > my programs run.  With 2.3, the memory
> > > goes down to a certain level and stays there.  With 2.4, during those 30
> > > seconds, the memory creeps back up (about 30 MB).  So I assume you've done
> > > something different with the garbage collection, and it is taking forever
> > > to
> > > release those temporary sequences for some reason?
> > 
> > Yes, I've changed the storage allocator significantly.
> > I'm using a WIN32 API routine directly.
> > It might be giving the memory back to the system in this situation,
> > rather than holding on to many megabytes of it. That takes more time 
> > though.
> > Perhaps you are now getting some disk paging activity too.
> > 
> 
> Hmmm...
> 
> No disk activity that I can tell.  And I've got plenty of RAM.
> 
> This could be trouble -- please consider going back to the old allocator 
> or doing something about that.  In theory, giving the memory back to the 
> system is good, but not if is going to take forever to do it.   That 
> particular program is now basically unusable with 2.4.  With 2.3 it is 0 
> seconds, with 2.4 it is 30 seconds -- for a function that will be called 
> over & over.  Am I going to be stuck with 2.3 forever now?

Possibly. I am stuck with old versions of win32lib.
 
> (See my other post about "speed" -- surely you don't want a general 
> slowdown for any program which happens to use lots of sequences in a 
> function.  Euphoria is all about sequences!)
> 
> 
> > > return NIL
> > 
> > When you execute a "return" statement, it will free up all the
> > private variables and temps used in the subroutine.
> > 
> 
> Yeah, make it go faster.  Please.  I'm worried now.

That can't be. Any return from a function or procedure will free it's vars, in
any
language i have used. The way around it is to use global vars and null them. 
What would help is a separate way to enable garbage collection, at times 
you know the program can be idle. So run the 2.3 gc all the time, and the 2.4 
version gc as called by the programmer?

Kat

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu