Re: Passing sequences to functions & procedures / Memory limits in openEuphoria?
- Posted by mattlewis (admin) Oct 07, 2013
- 1809 views
In a 32 bit OS the practical limit to how large a sequence you can use is imposed by the size of virtual address space that can be allocated. The size of the private virtual address space is 2 GB, independent of RAM size. The largest block that can be allocated will be substantially less than that, possible much less. The usage patterns of the sequence and RAM size will determine performance.
To exceed these limits you would need to use a 64 bit OS and 64 bit version of Euphoria.
In practice these limits are unlikely to be a problem.
Yes. There's a lot of memory involved. Let's say you wanted to create a 3 billion element sequence of integers with 64-bit euphoria. Firstly, you have 24-bytes of overhead information stored by the sequence structure. This is pretty much nothing compared to where we're going, of course. Next, you'd have 24,000,000,008 bytes allocated to store your integers (one extra element is allocated as an end marker).
There are certainly machines that have a lot more RAM than these, but if you're throwing that much at a single data structure, I will say that you're doing it wrong and should look for a better way, because it's going to be painful.
Matt