Rev as memory-resident database
Frank D. Engel, Jr.
fde101 at fjrhome.net
Wed Aug 25 13:22:32 EDT 2004
Most operating systems split that 4GB address space roughly in half.
2GB is reserved for the operating system (not half of the physical
memory, but half of the addresses which can be assigned to the memory),
and a unique 2GB address space is provided for each process. Some of
that "unique" 2GB address space, toward the beginning and sometimes
toward the end, is often (intentionally) unusable, in an effort to help
track bugs in software (there is a reason for this, and it is
legitimate; if you have (C/C++/Pascal/etc.) programming experience,
consider NULL pointer dereferences...) This takes away another
hundred K or so, and more is taken away by Revolution, by any
user-level runtime libraries & DLLs referenced by Revolution (both the
engine and the IDE need to be in that memory space). Add to this the
stack code and layout information, any runtime data tracked by
revolution, global & local variables and properties, your Transcript
code, and so on... You don't really have that much memory addressing
space available for your data.
Note that some operating systems (including some specially configured
versions of W2K/XP) will allow 3GB of addressing space per process, and
reserve only 1GB for the operating system.
If your data is larger than 1-1.25GB, do not expect it to fit into a
32-bit addressing space, even if you have 4GB of RAM and no other
running programs. If you have one of those specially configured
Windows systems (or a similarly configured OS of some other kind --
does anyone know if Linux or BSD can be configured that way?), you
might get 2-2.25GB, maybe a little more, but these numbers are rough
approximations. Leave yourself more room than you think you'll need.
Also, even on a 64-bit computer, if Rev is not built to run as a 64-bit
program, you will still be limited to the 32-bit address space. And if
the stack file is too large for the filesystem constraints, you will
not be able to save it to disk, even if you have a 64-bit address space
to make use of... many filesystems place a limit on the size of any one
So in short, 2-3GB is not necessarily realistic for a 32-bit system ;-)
On Aug 25, 2004, at 8:01 AM, Alex Shaw wrote:
> I stumbled upon an old /. article just recently..
> .. "An OODBMS is thus a full scale object oriented development
> environment as well as a database management system."
> That of course made me think of rev but I've also been thinking about
> more about using rev as my standard database system.. on 32-bit
> machines that's 4G (realistically probably 2-3G) of memory space. For
> the sort of systems i'm building that's quite a bit, and of course old
> info can be archived etc
> With memory so cheap these days the idea of a rev combo
> server/database seems quite feasible..
> Memory-resident should mean quick access .. i mean you do away with
> all the complications and extra plumbing needed to plug into external
> Has anyone actually tested rev performance on a high memory machine?
> Having dreams at the moment of decking out a 64-bit linux machine with
> some G-sticks :)
> use-revolution mailing list
> use-revolution at lists.runrev.com
$0 Web Hosting with up to 120MB web space, 1000 MB Transfer
10 Personalized POP and Web E-mail Accounts, and much more.
Signup at www.doteasy.com
More information about the Use-livecode