mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-11-04 13:38:14 +08:00 
			
		
		
		
	Add style targetted benchmark.
This commit is contained in:
		@@ -1,3 +1,4 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <benchmark/benchmark.h>
 | 
			
		||||
 | 
			
		||||
#include "ftxui/dom/elements.hpp"  // for gauge, separator, operator|, text, Element, hbox, vbox, blink, border, inverted
 | 
			
		||||
@@ -43,9 +44,38 @@ static void BencharkText(benchmark::State& state) {
 | 
			
		||||
}
 | 
			
		||||
BENCHMARK(BencharkText)->DenseRange(0, 10, 1);
 | 
			
		||||
 | 
			
		||||
static void BenchmarkStyle(benchmark::State& state) {
 | 
			
		||||
  while (state.KeepRunning()) {
 | 
			
		||||
    Elements elements;
 | 
			
		||||
    for (int i = 0; i < state.range(0); ++i) {
 | 
			
		||||
      elements.push_back(vbox({
 | 
			
		||||
          text("Test") | bold,
 | 
			
		||||
          text("Test") | dim,
 | 
			
		||||
          text("Test") | inverted,
 | 
			
		||||
          text("Test") | underlined,
 | 
			
		||||
          text("Test") | underlinedDouble,
 | 
			
		||||
          text("Test") | strikethrough,
 | 
			
		||||
          text("Test") | color(Color::Red),
 | 
			
		||||
          text("Test") | bgcolor(Color::Red),
 | 
			
		||||
          text("Test") | blink,
 | 
			
		||||
          text("Test") | automerge,
 | 
			
		||||
      }));
 | 
			
		||||
      elements.push_back(separator());
 | 
			
		||||
    }
 | 
			
		||||
    auto document = hbox(std::move(elements));
 | 
			
		||||
    Screen screen(state.range(1), state.range(1));
 | 
			
		||||
    Render(screen, document);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
BENCHMARK(BenchmarkStyle)
 | 
			
		||||
    ->ArgsProduct({
 | 
			
		||||
        benchmark::CreateDenseRange(1, 10, 3),     // Number of elements.
 | 
			
		||||
        benchmark::CreateDenseRange(10, 200, 20),  // Screen width.
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
}  // namespace ftxui
 | 
			
		||||
// NOLINTEND
 | 
			
		||||
 | 
			
		||||
// Copyright 2021 Arthur Sonzogni. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by the MIT license that can be found in
 | 
			
		||||
// the LICENSE file.l
 | 
			
		||||
// the LICENSE file.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user