# New Ticket Created by
# Please include the string: [perl #124098]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=124098 >
First reduced test-case (no argument):
constant C1 is export = 1;
constant C2 is export = 2;
constant C3 is export = 3;
constant C4 is export = 4;
constant C5 is export = 5;
constant C6 is export = 6;
constant C7 is export = 7;
constant C8 is export = 8;
constant C9 is export = 9;
constant C10 is export = 10;
constant C11 is export = 11;
constant C12 is export = 12;
constant C13 is export = 13;
constant C14 is export = 14;
constant C15 is export = 15;
constant C16 is export = 16;
constant C17 is export = 17;
constant C18 is export = 18;
constant C19 is export = 19;
constant C20 is export = 20;
Second reduced test-case (empty argument list):
constant C1 is export() = 1;
constant C2 is export() = 2;
constant C3 is export() = 3;
constant C4 is export() = 4;
constant C5 is export() = 5;
constant C6 is export() = 6;
constant C7 is export() = 7;
constant C8 is export() = 8;
constant C9 is export() = 9;
constant C10 is export() = 10;
constant C11 is export() = 11;
constant C12 is export() = 12;
constant C13 is export() = 13;
constant C14 is export() = 14;
constant C15 is export() = 15;
constant C16 is export() = 16;
constant C17 is export() = 17;
constant C18 is export() = 18;
constant C19 is export() = 19;
constant C20 is export() = 20;
Using ``perl6 --stagestats`` to compare these reduced test-cases, the
parse stage is way slower when an argument list is passed to the
export trait:
================ =========== ============== ========
CPU no argument empty argument slowdown
================ =========== ============== ========
Core 2 Duo L9400 0.4s 1.4s x3.5
Atom CPU D525 1.3s 5.2s x4.0
================ =========== ============== ========
Please note that the slowdown is the same when the argument list isn't
empty, for instance when using ``is export(:tag)``.
PS: almost all export traits in NativeCall.pm have an argument list.