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

Answer: 
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.
It depends on the ratio of how many times you call `dbms_output.put_line` versus what else you do in PL/SQL.