.NET Core 2.1 - Regex en bucle 200 veces más lento que 2.0 (3 veces en punto de referencia simple)

Tengo la siguiente expresión regular:

    var regex = new Regex(
        @"^ActiveMQ[\d\.-]*$",
        RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);

Se ejecuta más de ~ 1000 cadenas IsMatch llamada). En .NET Core 2.0 toma alrededor de10ms. Después de migrar a .NET Core 2.1, se hace cargo de2 seconds en los mismos datos.

¿Tienes idea de lo que está pasando? ¿Algún cambio de comportamiento en 2.1?

======================

Update: BenchmarkDotNet

Reproducible 3x drop (solo ejecuta, cambianetcoreapp2.1 anetcoreapp2.0 incsproj archivo, ejecutar de nuevo). @https: //github.com/ptupitsyn/netcore2.1-regex-perf/tree/master/sr

Simplificar la aplicación real tanto como sea posible ha reducido la caída, pero aún es muy visible.oltear los bucles anidados enGetPackageInfos2 reduce la caída de rendimiento a solo25%, pero sigue ahí. Cambiar esto en el código del mundo real no es trivial y me gustaría evitar este tipo de refactorización.Hay múltiples RegEx ejecutados en un bucle, y no pude reproducir la caída con solo un RegEx

Update 2

EliminarRegexOptions.Compiled@ resuelve el problema!

Respuestas a la pregunta(1)

Su respuesta a la pregunta