Why do you want to share it in memory... is it slow to access...
Do you always need the file as one 300MB string? Can it be parsed into smaller usable parts??
Why not have the data parsed into smaller parts and put into a database???? It only seems logical...
What is in these 300MB, what do you want to do with it??
Maybe you/i/we could find a different approach to your problem... It does not seem logical to have a shared 300MB Variable (are you rendering an image??)