aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/test/benchmarks/lexer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/benchmarks/lexer.cpp')
-rw-r--r--test/benchmarks/lexer.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/benchmarks/lexer.cpp b/test/benchmarks/lexer.cpp
new file mode 100644
index 0000000..0f3151f
--- /dev/null
+++ b/test/benchmarks/lexer.cpp
@@ -0,0 +1,25 @@
+#include <server/lexer/details/parse.hpp>
+
+#include <benchmark/benchmark.h>
+
+class SelectionOfNumbers : public benchmark::Fixture {
+protected:
+ std::vector<std::string_view> m_numbers{
+ "0",
+ "123",
+ "0.123",
+ ".123",
+ "1e9",
+ "1.87E-18",
+ "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",
+ };
+};
+
+BENCHMARK_F(SelectionOfNumbers, ParseStdRegex)(benchmark::State &state) {
+ using namespace math::server::lexer::details;
+ for (auto _ : state) {
+ for (const auto& src : m_numbers) {
+ parse_number(src);
+ }
+ }
+}