What do you want to change to it?
Generally, changing the OSM data on a local file isn't a good idea, since you'll have to re-do the changes every time you want to update a map. There are some better ideas:
* Do the changes on the OSM database itself, then you can wait a bit until your export service has updated the data, download it, and convert it. Note that for imports or automated changes, you need to follow the import guidelines.
* Write a script that does automatic conversions directly on the OSM XML data, and run the script before converting the map every time you want to update
* Make a new OSM file with your added features (which is usually small, and manually editable), convert it to obf, and load it on top of the regular OSM data.
Loading 3GB in memory won't be possible. As software working with the data usually adds metadata to it, so with any current computer, you'll have a lack of memory. Next to that, you'll also have a lack of processing power for most operations you want to do (like render it on the fly). If you really want to edit OSM data locally, the only way is to start a fork of OSM (similar to what FOSM did), can install an API server that allows the editors to extract small pieces of data to work on. But this will be cost lot of work for practically no gain.