Re: Memory usage on Win32: Euphoria usage vs. what Task Manager displays

new topic     » goto parent     » topic index » view thread      » older message » newer message
AndySerpa said...

There also may be a bug in 3.1 Euphoria it definitely changed how it releases memory under Windows between 2.5 and 3.0 (or maybe it was 3.0 and 3.1, can't remember). It used to be you could use a huge chunk of memory processing something, and then release it by setting the variables to null (i.e. var = {}). This stopped working in v3.1. It then held on to the memory, and you could re-use it (without it growing further, so it wasn't a total memory leak), but if you weren't going to reuse, you could never get the application to give it up. I had a number of pre-3.1 programs that did some big processing like this when they started up, but then released it. I had to rewrite them for 3.1 and break them up into two programs chained together because they were long-running programs and they'd continue hogging system resources forever after they were finished with those resources. I used to be able to run several of these programs simulataneously, but with 3.1 it would practically crash the system.

I reported this several times, but couldn't get anyone to pay attention, only getting the response that memory handling hadn't changed and it was "complicated". But it can be easily shown running the same code that v2.5 will release the memory and v3.1 won't. Haven't tried v4.0 yet.

My recollection was that prior to 3.0, or so (I can't recall exactly, either), euphoria simply used the standard malloc() from watcom. This never released anything back to the OS. At this point, euphoria uses Windows' allocation routines. In both cases, euphoria uses an internal cache to speed up reuse of memory.

Matt

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

Search



Quick Links

User menu

Not signed in.

Misc Menu