You're creating 48,000,000 objects which only get destroyed at the end of your program. this can take a LONG time. If you can, try to limit the amount of objects you have in memory at the same time.
Your code looks suspicous, by the way. Using strict might show some unpleasant surprises.
If all else fails, you can use POSIX's _exit (if you're careful)