LB Booster
General >> General Board >> I'm glad to see LBBooster still progressing
http://lbb.conforums.com/index.cgi?board=general&action=display&num=1385174908

I'm glad to see LBBooster still progressing
Post by CirothUngol on Nov 23rd, 2013, 01:48am

I'm really glad to see that the LibertyBASIC Booster is still progressing and becoming more mature and useful... here's why:

Since discovering the LB Booster I still use the JustBASIC IDE to write and debug my programs, but I've essentially stopped using it to actually run my programs. Imagine my surprise when I did a small update to a program that manipulates thousands of files and instead of loading it into LBB like I usually do, I ran it through the IDE for the first time in months... only to discover that JB chokes with an "out of memory" error.

Sad, 'cause I've hit the ~70MiB ceiling just in file names and other info on a computer with 8GiB RAM. Thankfully, my app still runs wonderfully when compiled with LBBooster. Seriously Rich, your tiny and powerful utility is as useful as it is indispensable. It doesn't just make my app better, it makes it possible.

Q: How much environmental memory does LB Booster have access to?
Re: I'm glad to see LBBooster still progressing
Post by Richard Russell on Nov 23rd, 2013, 10:29am

on Nov 23rd, 2013, 01:48am, CirothUngol wrote:
Q: How much environmental memory does LB Booster have access to?

In v2.20 I think it's about 100 Mbytes. However you can cheat it because in LBB the redim statement actually reserves a fresh block of memory from Windows so if you want to create a really huge array - which would normally fill the memory - you can do something like:

Code:
    dim array(1)
    redim array(very.big.number) 

Richard.
Re: I'm glad to see LBBooster still progressing
Post by CirothUngol on Nov 23rd, 2013, 3:34pm

Oh, really? That's fantastic, 'cause I always DIM my arrays at "1" and then REDIM them on the fly to the exact size I need. Assuming that this is not the way in which LibertyBASIC operates (and I am), this would probably be a point to make on your LBB info page. It's good to know.

So, what are the practical limits to LB Booster's environmental space? Through judicial use of file-splitting and large arrays, would it be possible to hold GigaBytes of data? Not that I would wish to, mind you. I'm just curious as to the outer limitations of LBB's capabilities.
Re: I'm glad to see LBBooster still progressing
Post by Richard Russell on Nov 23rd, 2013, 5:02pm

on Nov 23rd, 2013, 3:34pm, CirothUngol wrote:
So, what are the practical limits to LB Booster's environmental space?

It's a 32-bit application, so it has access to 2 Gbytes of user address space. How much of this could actually be allocated to arrays depends on two factors: how much RAM is available, and how fragmented is the address space.

On your PC, with 8 Gbytes of RAM, fragmentation will probably be the limiting factor. Unfortunately it's hard to predict that, because it will tend to vary from system to system.

On this particular PC, the biggest numeric array I could create was about 100 million elements (i.e. about 1 Gbyte of storage; LBB uses 80-bit floats), but your mileage may vary.

Richard.