Mombu the Programming Forum

Go Back   Mombu the Programming Forum > Programming > Conventional memory exhausted
User Name
Password
REGISTER NOW! Mark Forums Read




Reply
1 19th October 17:59
drv
External User
 
Posts: 1
Default Conventional memory exhausted



Please help!

What are the reasons for clipper program to break execution with folowing
error:
5302 Conventional memory exhausted

When I start my application, memory() gives those results:
Memory(0) 93
memory(1) 64
Memory(2) 65501 !?

During execution of a application, memory() gives smaller values, until
program crashes. Sometimes program works several hours, sometimes it crashes
for a few minutes of a work.

What is the main reason that application "eat" free memory ?

Program has many open/close DBF files, many Fopen/fread/fwrite/Fclose binary
files... Maybe some of those methods does not free used memory ?
  Reply With Quote


 


2 19th October 17:59
steve lupton
External User
 
Posts: 1
Default Conventional memory exhausted



There are many well known memory leaks in Clipper, most of which are
corrected by using the latest clipper versions and/or blinker's replacement
libraries (blxclp5x.lib).

The most common memory leak is associated with opening and closing tables
without field definitions. This causes the symbol table to expand a little
each time a table is opened because dynamic buffer space is allocated for
every field, but it is not all recovered during garbage collection.
Declaring fields in code, reserves permanent buffer space for field buffers.

Second most common, is memory lost to variables declared at run time -
usually through macro expansion.
  Reply With Quote
Reply


Thread Tools
Display Modes




666