Question: Does `dbms_output.put_line` decrease the performance in `plsql` code?

Answer: 
Yes, it's another piece of code that needs to be executed, but unless the output is actually turned on, I think the overhead is quite minimal.

Here's an AskTom question with more details: [Is there a performance impact for dbms\_output.put\_line statements left in packages?](http://asktom.oracle.com/pls/asktom/f?p=100:11:0%3a%3a%3a%3aP11_QUESTION_ID:1468572900346293780)
You can look into [conditional compilation](http://www.oracle-base.com/articles/10g/ConditionalCompilation_10gR2.php) so that the DBMS\_OUTPUT.PUT\_LINE are only in the pre-parsed code if the procedure is compiled with the appropriate option.

One question is, has DBMS\_OUTPUT.ENABLE been called.
If so, any value in a DBMS\_OUTPUT.PUT\_LINE will be recorded in the session's memory structure. If you continue pushing stuff in there and never taking it out (which might be the case with some application server connections) you might find that after a few days you have a LOT of stuff in memory.