On Wed, 21 Sep 2022 16:49:32 GMT, Adam Sotona <asot...@openjdk.org> wrote:
>> Parsing performance of `j.l.c.MethodTypeDescriptor::ofDescriptor` can be >> significantly improved and add performance boost to intensive users. >> >> Two main reasons have been identified and fixed in this patch: >> >> First glitch is late insertion of return type to the first position of >> `j.u.ArrayList`, causing all previously parsed parameter types to shift >> using `System::arraycopy`. >> >> Proposed patch inserts a placeholder for the return type first and replaces >> it with return type later. >> >> Second performance degradation is in >> `MethodTypeDescriptor::skipOverFieldSignature`, where each identified class >> descriptor is exactly located by `String::indexOf`, extracted by >> `String::substring`, and passed for for the purpose of verification to >> `ConstantUtils::verifyUnqualifiedClassName`. >> >> Proposed patch inlines the unqualified class name verification into >> `ConstantUtils::skipOverFieldSignature` parsing loop and so eliminates calls >> of `String::indexOf` and `String::substring`. Package private method >> `ConstantUtils::verifyUnqualifiedClassName` has no other use within the >> package, so it is removed. >> >> Please review proposed performance improving patch. >> >> Thanks, >> Adam > > Adam Sotona has updated the pull request incrementally with one additional > commit since the last revision: > > added comments to j.l.ConstantUtils::skipOverFieldSignature parser loop Looks good. ------------- Marked as reviewed by psandoz (Reviewer). PR: https://git.openjdk.org/jdk/pull/10358