will System.debug, if left in production, affect performance ?
Code executed, including System.Debug and System.assert (and their variants) have the following effects:
1) They increase debug log sizes.
2) They increase script execution time (but insignificantly).
3) They count against governor limits.
The final bullet point is your most troubling concern. A loop against 1000 records with 10 debug statements will have a total of 10,000 extra script statements than the one without.
The salesforce.com best practices state that you should always remove or comment debug statements for production code