04-07-2023, 02:01 PM
(04-07-2023, 01:00 PM)mnrvovrfc Wrote:(04-07-2023, 09:41 AM)mdijkens Wrote: I expect it to be some kind of memory error.
(and Yes I know this is an array of 1.5GB, but it used to work up to 2GB)
How much RAM do you have on your computer? If less than 16GB then this shouldn't be done.
"It used to work up to 2GB" but remember that managing strings could take up to 4 times what it looks like strictly from the source code. Concatenation is the biggest offender. Function calls, even to in-built functions like MID$() could make copies of strings only to process.
The operating system needs memory for other things it has to do, including holding your memory-hogging program.
If possible you should break down the task into two or more parts.
I have 128GB of RAM and use QB64 for years to process really big log-files (up to 1TB)
The code above is just a small snippet; the real program uses huge _MEM variables, but I use variable length strings to store ~10M temporary values between 50 and 200 bytes long. Making it fixed on 200 bytes is a lot of memory wasted.
The performance of this particular part is not a real issue (filling 10M strings in a few seconds); the whole process runs ~20mins ;-)
But the issue here is that it did work in older versions of QB64 and QB64pe!
45y and 2M lines of MBASIC>BASICA>QBASIC>QBX>QB64 experience