It's been a while since I used it, but it works something like this :
Step One : System takes a snapshot, or sets a checkpoint, or whatever analogy suits you, and sets up temp journals to hold data being written to files during save. (This can be a cycle-eating process, but is usually pretty fast, barring any file conflicts (see below)
Step Two : System saves files, while programs function as usual, using the journals rather than the files for write, updates, etc. (This process is slightly slower than ops would be without the save going on, but not onerously so - basically it's just one more job eating cycles...)
Step Three : Temp journals are rolled back into the associated files. (pretty quick)
Last time I used this, the client went from a 2.25 hour downtime window nightly for the save, to a 12 minute downtime window for checkpoint processing. We found that the checkpoint processing (step 1 above) happens much more quickly, and without the danger of file locks, if you kick the users off for a short time. What the heck, they're used to being kicked off for the long save, right ?
So you setup a job, give the users a 10 minute warning, and then kill QINTER, restarting it after you get the "Checkpoint Processing Complete" message from the system... Users are back on in much, much less time than saving without save-while-active.
Sorry, long answer - Summed Up : Yes, there is a performance hit during the save-while-active. Is that better than no activity during a regular save ? Unless running a response-time critical, real-time app, the answer is likely YES.
Jamie