I don't remember if the OP specified in what respect the suggested implementation should be efficient. It could be efficient in terms of elapsed run time, CPU time used, average virtual storage working set size, average real storage working set size, or programmer development time (presumably the OP). The suggestion I made, for the 512MB bit string, maximizes the efficiency of the programmer developing the scheme. Other suggestions seen so far emphasize some of the other four goals listed above. I personally am far more concerned these days with my own development time than I am with execution time efficiency. 45 years ago, the reverse was true. The only exception now is when my piece of code must execute one or more million times per second with interrupts disabled, holding a lock, or in some other exotic state.
The bit string scheme will require 512 MB of virtual storage, but far less than that in real storage backing the virtual storage working set, as the OP has himself indicated that the total number of input items, each of which could cause a separate page fault and short term page fixing, is far smaller than 128K, which is the number of 4K pages in 512 MB. I was flattered when William Blair experimented with my idea. He reported that one of his worst case scenarios took 7 seconds of elapsed time. Only the OP knows if 7 seconds is acceptable. Whenever someone asks for efficiency or performance to be optimized, my first question is "with respect to what variable"? Bill Fairchild Rocket Software -----Original Message----- From: IBM Mainframe Assembler List [mailto:[email protected]] On Behalf Of robin Sent: Wednesday, August 25, 2010 6:25 AM To: [email protected] Subject: Re: Efficient Memory List From: "Mike Shaw" <[email protected]> Sent: Wednesday, 25 August 2010 12:25 PM > On Tue, Aug 24, 2010 at 1:40 PM, Patrick Roehl > <[email protected]>wrote: > >> <snip> >> Because of these factors, and the ideas brought out in this discussion, >> the bit string idea seems like an excellent fit. > > Patrick: > > If you implement the bit string idea, please let us know how much of an > improvement (execution time, CPU time) it provides over your current exit. Plus also the effect that the scheme has on the performance of other running programs, when you request and use some 500Mb of storage.
