From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,ead02e7101c0c023 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-02-28 23:06:03 PST Path: supernews.google.com!sn-xit-03!supernews.com!nntp.cs.ubc.ca!newsfeed.direct.ca!look.ca!newshub2.rdc1.sfba.home.com!news.home.com!news1.frmt1.sfba.home.com.POSTED!not-for-mail From: tmoran@acm.org Newsgroups: comp.lang.ada Subject: Re: Problems with large records (GNAT) [continued] References: <3A9E05B0.46B406ED@linuxchip.demon.co.uk> X-Newsreader: Tom's custom newsreader Message-ID: Date: Thu, 01 Mar 2001 07:00:26 GMT NNTP-Posting-Host: 24.20.190.201 X-Complaints-To: abuse@home.net X-Trace: news1.frmt1.sfba.home.com 983430026 24.20.190.201 (Wed, 28 Feb 2001 23:00:26 PST) NNTP-Posting-Date: Wed, 28 Feb 2001 23:00:26 PST Organization: Excite@Home - The Leader in Broadband http://home.com/faster Xref: supernews.google.com comp.lang.ada:5345 Date: 2001-03-01T07:00:26+00:00 List-Id: > type PriceSummary_T is record > OpenPrice : Float; > HighPrice : Float; > LowPrice : Float; > ClosePrice : Float; -- Split and dividend corrected price > UncorrectedClose : Float; -- Raw share price > Volume : Integer; > Time : Time_T; > end record; I realize you are interested in the generic large-memory-with-Gnat problem, but, as they say, sometimes it's better to improve the algorithm than the hardware. I worked on a commercial system (Technical Tools Co.) with stock (and commodity) historical data of this type, using DPMI DOS and Windows 3.1 (and Ada 9X). For historical data, stock prices can be 16 bit fixed point with delta of 1/8, rather than 32 bit floats (excluding Berkshire-Hathaway). Even with prices in pennys nowadays, 24 bits should be quite enough for a stock price. Similarly, a 24 bit Volume (16 million shares of one stock traded in one day) should be normally be adequate, perhaps with an exception list for anything that doesn't fit. A sixteen bit fixed point value, with suitable delta, should be fine for holding the split correction, or 24 bits if you really want to allow for even the most bizarre changes. I don't know what kind of processing you are doing, but usually one processes a small number of complete time series, or the complete market for just a few days, so only a few rows or columns of the complete matrix need be in RAM at any one time.