Groups | Search | Server Info | Login | Register
Groups > comp.lang.pascal.borland > #118
| Path | csiph.com!usenet.pasdenom.info!news.albasani.net!news.stack.nl!.POSTED!not-for-mail |
|---|---|
| From | Marco van de Voort <marcov@toad.stack.nl> |
| Newsgroups | comp.lang.pascal.borland |
| Subject | Re: Memory, objects, and TCollections |
| Date | Fri, 27 Jul 2012 11:13:06 +0000 (UTC) |
| Organization | Stack Usenet News Service |
| Lines | 65 |
| Message-ID | <slrnk14tu2.1hrj.marcov@toad.stack.nl> (permalink) |
| References | <45fb5804-296d-43f4-bd0d-ec3d109a5d27@y12g2000yqe.googlegroups.com> <slrnk0oqt8.1kcg.marcov@toad.stack.nl> <7efa8ee5-eb59-4232-ba0e-c648a2a96a9a@z19g2000vbe.googlegroups.com> <slrnk0voh4.2mf0.marcov@toad.stack.nl> <dda71336-072e-4713-b2a8-227ac43dc90e@googlegroups.com> |
| NNTP-Posting-Host | toad.stack.nl |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=us-ascii |
| Content-Transfer-Encoding | 7bit |
| X-Trace | mud.stack.nl 1343387586 17649 2001:610:1108:5010::135 (27 Jul 2012 11:13:06 GMT) |
| X-Complaints-To | abuse@stack.nl |
| NNTP-Posting-Date | Fri, 27 Jul 2012 11:13:06 +0000 (UTC) |
| User-Agent | slrn/0.9.9p1 (FreeBSD) |
| Xref | csiph.com comp.lang.pascal.borland:118 |
Show key headers only | View raw
On 2012-07-26, Jim Leonard <MobyGamer@gmail.com> wrote:
>> Same principle. Code overlay is based that some code is only needed at
>> certain times. One can do the same for data, page data into the EMS
>> pageframe when needed. This is mostly explicit though. (iow you have the
>> responsibility to do it at the same time). XMS and EMS arrays are more or
>> less based on this.
>
> I thought you meant you could use the Overlay unit for overlaying data as well as code. You're just taking about paging data in and out as needed.
I don't know the overlay unit that well. I spent only the beginnings of my 16-bit time with
TP(6 mostly), moving on to Topspeed Modula2 later. When that ended I came
back to FPC. So I'm not that deep into 16-bit specific TP issues. (including
286 real mode, which I used only once or twice).
I do know that some overlay systems can also swap out global variables
that are in the implementation of units in an overlay. I don't know if TP
can.
I think what I'm refering to is what XMS/EMSarray are in TP. You just store
pointers into the (EMS) pageframe or XMS buffer, and structure your program
so that it makes sure that the appropriate memory is mapped in.
My main adastructure was a "larger than 64k array" (a block>64k allocated and then
walked by manipulating the segment part of the pointer) that held pointers
to the data. (so that I could have more than 16384 elemnents)
The pointers to the data contained the block number of the ems frame to map
in in the segment part.
So accessing such a pointer was something like
blocknr:=seg(myptr);
if blocknr<>currentblocknr then
begin
mapin(blocknr);
currentblocknr:=blocknr;
end;
segmentof(myptr):=segmentemspageframe; // I don't even know how to do this anymore
access(myptr);
However when you do a lot of random access this can be slow in theory. IIRC
I did mergesorts the first time for the bulk of the data, and cached that on
disk, adding only most recent mutations on every run. The mergesort had a
naieve fallback to disk only in case there was not enough memory (the in
memory sorting was faster but required twice the space)
This made sure that the number of blockswaps was in the magnitude of the
64kb/sizeof(data)
But this was all in 486, early pentium times when even older machines were
at least 386's with 4MB. Though a brief while memory became urgent again
because people insisted on running under Windows (3.x and even 95) on
machines that could barely run it, not leaving much memory for applications.
My favorate deployment destination was DV (DesqView) or DV/X.
I maintained that application a while in 16-bit after I moved to 32-bit
because it was for a market (BBSes) that didn't warrant rearchitecting.
And currently I happen to be thinking about making a generics based
tstringlist/tstringcollection type for FPC/Delphi that has proper
insertion behaviour over 4 billion elements :-)
Back to comp.lang.pascal.borland | Previous | Next — Previous in thread | Find similar
Memory, objects, and TCollections Jim Leonard <mobygamer@gmail.com> - 2012-07-22 11:02 -0700
Re: Memory, objects, and TCollections Marco van de Voort <marcov@toad.stack.nl> - 2012-07-22 21:07 +0000
Re: Memory, objects, and TCollections Robert AH Prins <spamtrap@prino.org> - 2012-07-23 02:31 +0000
Re: Memory, objects, and TCollections Jim Leonard <mobygamer@gmail.com> - 2012-07-23 11:33 -0700
Re: Memory, objects, and TCollections Marco van de Voort <marcov@toad.stack.nl> - 2012-07-24 16:20 +0000
Re: Memory, objects, and TCollections Jim Leonard <MobyGamer@gmail.com> - 2012-07-26 14:19 -0700
Re: Memory, objects, and TCollections Marco van de Voort <marcov@toad.stack.nl> - 2012-07-27 10:46 +0000
Re: Memory, objects, and TCollections Jim Leonard <mobygamer@gmail.com> - 2012-07-23 11:42 -0700
Re: Memory, objects, and TCollections Marco van de Voort <marcov@toad.stack.nl> - 2012-07-25 12:10 +0000
Re: Memory, objects, and TCollections Jim Leonard <MobyGamer@gmail.com> - 2012-07-26 14:21 -0700
Re: Memory, objects, and TCollections Marco van de Voort <marcov@toad.stack.nl> - 2012-07-27 11:13 +0000
csiph-web