|
Mihael:
See embedded remarks below.
Mark
> On 1/7/2011 7:21 AM, Schmidt, Mihael wrote:
Hi,The "stat" API will return the size of the streamfile. (See "Unix
I am loading some data from a streamfile and I have no clue how big things can get.
type APIs in the InfoCenter.)
Strategy 1: I am allocating some memory (%alloc) and for every line extend the allocated memory (%realloc).You could easily write some small test programs to empirically determine
Strategy 2: I get one "big" block of memory and only do a reallocation if the data doesn't fit. (more work on my side)
Doesn't the system do strategy 2 under the hood already? If I allocate 100 bytes the system probably allocates a page (or so) and not only 100 bytes. So a realloc should not trigger another allocation of a whole page.?!
the "allocation stragegy" e.g. by reporting the addresses returned.
It is usually better to write your own memory management layer that
allocates large blocks from the OS, and then sub-allocates from within
these large blocks, using whatever custom allocation strategy is deemed
best for the job at hand.
Please enlighten me.Instead of reading the entire streamfile into memory, use "mmap" (or
"mmap64") API to directly map the streamfile into teraspace. This allows
you to directly address the data in the file as a large array in memory,
and it is paged in on demand.
Thanx in advance.
Mihael Schmidt
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.