[fpc-pascal]MaxAvail in Win32 systems

Rainer Hantsch rainer at hantsch.co.at
Mon May 13 18:48:06 CEST 2002


On Sun, 12 May 2002, Lukasz Lesniak wrote:

> I write a program like database, you know:
> Person = record
>            name: string[30];
>             .......
>            phone: string[10];
>           end;
>   and I am using dynamic list.
> When program starts I read all records to memory (BTW: it is good idea?)

Well, reading in all data depends on your needs, so the answer (if this is a
good idea) is not so easy. 
If you write an application which only picks out some data fields from the
whole "database" once(!), it makes no sense to read in everything. Here it
will be better to read the file sequentially and only add those records to a
dynamic list which match your selection.
If you permanently work with the "database", it will be quicker to keep it
completely in memory, but this has the disadvantage that...
a.) you will loose all changes when your application crashes (or windoze
    crashes)
b.) you will have to write back the data at least at the end of your
    application
b.) you cannot change the "database-file" from another task as long as it is
    not written back from the first task, otherwise you will loose data.

> and I want to check it is enough memory to load next record:
> if MaxAvail >= SizeOf(Person^.desc) then ...
> Please tell me how its work in Win32 because I create file about 400 MB
> and all record was loaded sucessfully (PC with 64 MB physical RAM and 600 MB 
> virtual memory). I know it's using virtual memory ...

You should always keep in mind that it will become awfully slow if you exceed
the physically available memory (RAM). When Windoze starts swapping, you will
get a significant impact in speed, much more as under LINUX! Here it will 
surely be better to access the records directly on the disk!

Under LINUX, I had a complete WEB shop running for months on a 486DX4/100
with 8MB RAM only for fun and to see if Linux is really so stable... 
As you can imagine, the system was permanently swapping 24 hours a day (the
HDD LED was permanently ON!), but it did not crash and still worked with
an acceptable speed. - Great, isn't it?

If you try this with Windoze, be warned, you'll get a blue screen within
shortest time...   :-)


Have a lot of fun,

  Ing. Rainer Hantsch

-- 
      \\|//           Ing. Rainer HANTSCH  -  Hardware + Software
      (o o)           Forget Windoze! -- We focus on L-I-N-U-X...
--oOOo-(_)-oOOo--------------------------------------------------
Ing. Rainer HANTSCH  |  e-Mail: office at hantsch.co.at
Khunngasse 21/20     |  www   : http://www.hantsch.co.at
A-1030 Vienna        |  Tel.  : ++43 - 1 - 7988538 0 
---------------------|  Fax   : ++43 - 1 - 7988538 18
** AUSTRIA **        |  Mobile: ++43 - 664 - 9194382
-----------------------------------------------------------------





More information about the fpc-pascal mailing list