> Other than the 1/2 the available memory thing (which may be the > culprit), neither am I.
Check out objdump on the binary to see the sizes and loading locations of your various segments. You should be able to tell if your program is over the 2G limit. Some systems will allow you to use more than 2G of VM. (2G comes from some systems splitting the VM space in half for kernel vs. user addresses so that both can be accessible at the same time while running in the kernel. In theory you can allow userland to use the full 4G space. Some systems slice off a smaller chunk of VM for the kernel). If the OS platform is not as important as the application, you may investigate running the program on another operating system (or tuning the existing one if there are options. I'm not too familiar with the ability to adjust linux in this reguard). Or perhaps even using a cpu with a larger VM space (64-bit systems). > We kind of lean away from dynamic allocation for this program. > I'm trying to tweak around with sbrk() a bit to see if I can fudge > things a bit. I think you should distinguish dynamically allocating memory during the running of the program from dynamically allocating memory at initialization. The latter is has no performance impact on your program. > When the program is loaded. Nothing gets executed. Doesn't even hit _start in crt0? What does GDB say when it loads? > -Charles Tim N.
