I'm using developer version 12.
If I run this in test window, it takes ages to display the output in dbms output

BEGIN
FOR nn IN 1 .. 10000 LOOP
dbms_output.put_line(lpad('X', 80, 'X'));
END LOOP;
END;


I checked what's going on and saw this shocked No wonder it's so slow.

DECLARE
Lines SYS.DBMS_OUTPUT.chararr;
BEGIN
:NumLines := 10;
sys.DBMS_OUTPUT.get_lines (lines => Lines, numlines => :NumLines);

IF :NumLines > 0
THEN
:Line0 := Lines (1);
END IF;

IF :NumLines > 1
THEN
:Line1 := Lines (2);
END IF;

IF :NumLines > 2
THEN
:Line2 := Lines (3);
END IF;

IF :NumLines > 3
THEN
:Line3 := Lines (4);
END IF;

IF :NumLines > 4
THEN
:Line4 := Lines (5);
END IF;

IF :NumLines > 5
THEN
:Line5 := Lines (6);
END IF;

IF :NumLines > 6
THEN
:Line6 := Lines (7);
END IF;

IF :NumLines > 7
THEN
:Line7 := Lines (8);
END IF;

IF :NumLines > 8
THEN
:Line8 := Lines (9);
END IF;

IF :NumLines > 9
THEN
:Line9 := Lines (10);
END IF;
END;