Discussions related to Visual Prolog
User avatar
George
Active Member
Posts: 47
Joined: 19 Sep 2011 8:54

Memory Memory Management in Visual Prolog 7.4 ?

Unread post by George »

I just gone through the below url for the memory management,

http://wiki.visual-prolog.com/index.php ... Management

I don't see any limitation on that.

Can you please advice me on the following,

What is the built in max size for "run stack memory", "heap memory" and "system memory" ?

Is there any way user can setup memory size on the project level setting ?

Please give me some light with the comparison of Old Prolog Version (Prolog 5.2)

Thanks in advance
Kind Regards,
George Ananth. S | Prolog Developer
georgeananth.prolog@gmail.com
+91 9791499282
User avatar
Thomas Linder Puls
VIP Member
Posts: 1398
Joined: 28 Feb 2000 0:01

Unread post by Thomas Linder Puls »

Visual Prolog does not set any limits on any of these thigs; all limits comes from Windows.

The only thing that can be changed is the actual size of the runtime stack.

Why do you want to change any of these?
Regards Thomas Linder Puls
PDC
User avatar
George
Active Member
Posts: 47
Joined: 19 Sep 2011 8:54

Unread post by George »

I'm not intended to change any of these...

I need more clarity on these limitation..

As we see, in Old Prolog version(5.2), we used to define the "GStack size" and "Stack size" which will help us to increase the size of the IDB.

I'm not sure, how that been handled on 7.4 version.
The only thing that can be changed is the actual size of the runtime stack.
How can we change this ? (what is the limitation for IDB) - howmuch size we can store internally ?
Visual Prolog does not set any limits on any of these thigs; all limits comes from Windows.
Can you please give me some clarity on this - How that will use the Windows memory.. ?


Thanks in advance..
Kind Regards,
George Ananth. S | Prolog Developer
georgeananth.prolog@gmail.com
+91 9791499282
User avatar
Thomas Linder Puls
VIP Member
Posts: 1398
Joined: 28 Feb 2000 0:01

Unread post by Thomas Linder Puls »

There is nothing called a G-Stack anymore, hence no size to control.

I believe you use Visual Prolog for a DLL which is called by a C/C++-program. If that is the case it is the C/C++ program that decides the stack size.

I am not sure what you mean by IDB???

A 32 bit Windows program can all in all occupy 2GB Memory. These 2GB will contain all the code, all the static data, all the run stack(s). The remaining part of the memory can be used as heap. Windows will use part of the heap, and certain Windows operations will create additional threads which will have stacks, etc.

So the main thing you can do to increase the heap size (I assume the "IDB" uses the heap) is to minimize the other things. Decreasing the main stack is a possibility, however it is 1MB out of 2GB, so it will not really matter much. You can also write a smaller program, but again I doubt that it will really matter.

Switching to 64 bit would on the other hand give a huge increase. The story is the same, except that a 64 bit program can occupy 8 TB (1 TB = 1024*1024 GB). It will of course only truly be in memory if it runs on a computer with more than 8 TB RAM.
Regards Thomas Linder Puls
PDC
Paul Cerkez
VIP Member
Posts: 106
Joined: 6 Mar 2000 0:01

Unread post by Paul Cerkez »

IDB - internal database.

in 5.x and earlier version of PDC Prolog, a developer could adjust heap/stack values to enable IDBs to hold more data.

Myself, I used to use the external database but the location would be 'in_memory' if I had a lot of data but needed speed. I would only use the IDB for small rapid look ups or 'globals'
AI Rules!
P.
Post Reply