From e4b1c0b8b18b9b482676e26c6a68cd84127a69c7 Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Sun, 12 Sep 2021 00:20:07 +0430 Subject: [PATCH] LibRegex: Set a signpost on every executed regular expression --- Userland/Libraries/LibRegex/RegexMatcher.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Userland/Libraries/LibRegex/RegexMatcher.cpp b/Userland/Libraries/LibRegex/RegexMatcher.cpp index b0c8708bad..c09419fdf6 100644 --- a/Userland/Libraries/LibRegex/RegexMatcher.cpp +++ b/Userland/Libraries/LibRegex/RegexMatcher.cpp @@ -11,6 +11,10 @@ #include #include +#ifdef __serenity__ +# include +#endif + #if REGEX_DEBUG # include #endif @@ -115,6 +119,11 @@ RegexResult Matcher::match(RegexStringView const& view, Optional RegexResult Matcher::match(Vector const& views, Optional::OptionsType> regex_options) const { +#ifdef __serenity__ + auto perf_string_id = perf_register_string(m_pattern->pattern_value.characters(), m_pattern->pattern_value.length()); + perf_event(PERF_EVENT_SIGNPOST, perf_string_id, 0); +#endif + // If the pattern *itself* isn't stateful, reset any changes to start_offset. if (!((AllFlags)m_regex_options.value() & AllFlags::Internal_Stateful)) m_pattern->start_offset = 0;