diag_log currently blocks the render/simulation step to perform the actual write IO. This means that excessive RPT writting, for example the recent PhysX RPT spam issue; causes massive FPS loss in both client and dedicated server scenarios.
This FPS loss is due to the fact that diag_log blocking writes to the RPT in sequential order.
Recommendation:
This should be moved off to its own processing thread. All diag_log calls should simply add a log message to a log queue; this queue should then be processed by a seperate logging thread, which exclusive performs write IO to the logging files.
I recommend this be moved to for all logging functionality, as IO is expensive and will cause blocking of simulation frames all over the place.