mirror of
https://github.com/aseprite/aseprite.git
synced 2025-01-27 06:35:16 +00:00
Update benchmark library
1) In benchmark docs it says that a range-based loop is preferred instead of KeepRunning() call: https://github.com/google/benchmark/blob/main/docs/user_guide.md#a-faster-keeprunning-loop 2) Now we call benchmark::Shutdown() in editor/view benchmarks exit
This commit is contained in:
parent
890e27b0a1
commit
731e982a53
@ -43,7 +43,7 @@ void BM_ScrollEditor(benchmark::State& state) {
|
|||||||
auto mgr = ui::Manager::getDefault();
|
auto mgr = ui::Manager::getDefault();
|
||||||
mgr->dontWaitEvents();
|
mgr->dontWaitEvents();
|
||||||
|
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
editor->setEditorScroll(gfx::Point(0, 0));
|
editor->setEditorScroll(gfx::Point(0, 0));
|
||||||
mgr->generateMessages();
|
mgr->generateMessages();
|
||||||
mgr->dispatchMessages();
|
mgr->dispatchMessages();
|
||||||
@ -70,7 +70,7 @@ void BM_ZoomEditor(benchmark::State& state) {
|
|||||||
auto mgr = ui::Manager::getDefault();
|
auto mgr = ui::Manager::getDefault();
|
||||||
mgr->dontWaitEvents();
|
mgr->dontWaitEvents();
|
||||||
|
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
editor->setZoom(render::Zoom(4, 1));
|
editor->setZoom(render::Zoom(4, 1));
|
||||||
editor->invalidate();
|
editor->invalidate();
|
||||||
mgr->generateMessages();
|
mgr->generateMessages();
|
||||||
@ -140,9 +140,10 @@ int app_main(int argc, char* argv[])
|
|||||||
app.initialize(AppOptions(1, { argv2 }));
|
app.initialize(AppOptions(1, { argv2 }));
|
||||||
app.mainWindow()->expandWindow(gfx::Size(400, 300));
|
app.mainWindow()->expandWindow(gfx::Size(400, 300));
|
||||||
|
|
||||||
::benchmark::Initialize(&argc, argv);
|
benchmark::Initialize(&argc, argv);
|
||||||
int status = ::benchmark::RunSpecifiedBenchmarks();
|
benchmark::RunSpecifiedBenchmarks();
|
||||||
|
benchmark::Shutdown();
|
||||||
|
|
||||||
app.close();
|
app.close();
|
||||||
return status;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Aseprite Document Library
|
// Aseprite Document Library
|
||||||
// Copyright (c) 2023 Igara Studio S.A.
|
// Copyright (c) 2023-2024 Igara Studio S.A.
|
||||||
//
|
//
|
||||||
// This file is released under the terms of the MIT license.
|
// This file is released under the terms of the MIT license.
|
||||||
// Read LICENSE.txt for more information.
|
// Read LICENSE.txt for more information.
|
||||||
@ -22,7 +22,7 @@ void BM_FlipSlow(benchmark::State& state) {
|
|||||||
const int h = state.range(2);
|
const int h = state.range(2);
|
||||||
const auto ft = (doc::algorithm::FlipType)state.range(3);
|
const auto ft = (doc::algorithm::FlipType)state.range(3);
|
||||||
std::unique_ptr<Image> img(Image::create(pf, w, h));
|
std::unique_ptr<Image> img(Image::create(pf, w, h));
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
algorithm::flip_image_slow(img.get(), img->bounds(), ft);
|
algorithm::flip_image_slow(img.get(), img->bounds(), ft);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -33,7 +33,7 @@ void BM_FlipRawPtr(benchmark::State& state) {
|
|||||||
const int h = state.range(2);
|
const int h = state.range(2);
|
||||||
const auto ft = (doc::algorithm::FlipType)state.range(3);
|
const auto ft = (doc::algorithm::FlipType)state.range(3);
|
||||||
std::unique_ptr<Image> img(Image::create(pf, w, h));
|
std::unique_ptr<Image> img(Image::create(pf, w, h));
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
algorithm::flip_image(img.get(), img->bounds(), ft);
|
algorithm::flip_image(img.get(), img->bounds(), ft);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Aseprite Document Library
|
// Aseprite Document Library
|
||||||
// Copyright (c) 2019 Igara Studio S.A.
|
// Copyright (c) 2019-2024 Igara Studio S.A.
|
||||||
//
|
//
|
||||||
// This file is released under the terms of the MIT license.
|
// This file is released under the terms of the MIT license.
|
||||||
// Read LICENSE.txt for more information.
|
// Read LICENSE.txt for more information.
|
||||||
@ -26,7 +26,7 @@ void BM_ShrinkBounds(benchmark::State& state) {
|
|||||||
std::unique_ptr<Image> img(Image::create(pixelFormat, w, h));
|
std::unique_ptr<Image> img(Image::create(pixelFormat, w, h));
|
||||||
img->putPixel(w/2, h/2, rgba(1, 2, 3, 4));
|
img->putPixel(w/2, h/2, rgba(1, 2, 3, 4));
|
||||||
gfx::Rect rc;
|
gfx::Rect rc;
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
doc::algorithm::shrink_bounds(img.get(), 0, nullptr, rc);
|
doc::algorithm::shrink_bounds(img.get(), 0, nullptr, rc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
// Aseprite Document Library
|
// Aseprite Document Library
|
||||||
|
// Copyright (c) 2024 Igara Studio S.A.
|
||||||
// Copyright (c) 2017 David Capello
|
// Copyright (c) 2017 David Capello
|
||||||
//
|
//
|
||||||
// This file is released under the terms of the MIT license.
|
// This file is released under the terms of the MIT license.
|
||||||
@ -30,7 +31,7 @@ void BM_Rgba(benchmark::State& state) {
|
|||||||
color_t b = color_t(state.range(1));
|
color_t b = color_t(state.range(1));
|
||||||
int opacity = state.range(2);
|
int opacity = state.range(2);
|
||||||
BlendFunc func = F;
|
BlendFunc func = F;
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
color_t c = func(a, b, opacity);
|
color_t c = func(a, b, opacity);
|
||||||
c = func(c, b, opacity);
|
c = func(c, b, opacity);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Aseprite Document Library
|
// Aseprite Document Library
|
||||||
// Copyright (c) 2023 Igara Studio S.A.
|
// Copyright (c) 2023-2024 Igara Studio S.A.
|
||||||
//
|
//
|
||||||
// This file is released under the terms of the MIT license.
|
// This file is released under the terms of the MIT license.
|
||||||
// Read LICENSE.txt for more information.
|
// Read LICENSE.txt for more information.
|
||||||
@ -24,7 +24,7 @@ void BM_IsSameImageOld(benchmark::State& state) {
|
|||||||
ImageRef a(Image::create(pf, w, h));
|
ImageRef a(Image::create(pf, w, h));
|
||||||
doc::algorithm::random_image(a.get());
|
doc::algorithm::random_image(a.get());
|
||||||
ImageRef b(Image::createCopy(a.get()));
|
ImageRef b(Image::createCopy(a.get()));
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
is_same_image_slow(a.get(), b.get());
|
is_same_image_slow(a.get(), b.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -36,7 +36,7 @@ void BM_IsSameImageNew(benchmark::State& state) {
|
|||||||
ImageRef a(Image::create(pf, w, h));
|
ImageRef a(Image::create(pf, w, h));
|
||||||
doc::algorithm::random_image(a.get());
|
doc::algorithm::random_image(a.get());
|
||||||
ImageRef b(Image::createCopy(a.get()));
|
ImageRef b(Image::createCopy(a.get()));
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
is_same_image(a.get(), b.get());
|
is_same_image(a.get(), b.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Aseprite Document Library
|
// Aseprite Document Library
|
||||||
// Copyright (c) 2019-2022 Igara Studio S.A.
|
// Copyright (c) 2019-2024 Igara Studio S.A.
|
||||||
//
|
//
|
||||||
// This file is released under the terms of the MIT license.
|
// This file is released under the terms of the MIT license.
|
||||||
// Read LICENSE.txt for more information.
|
// Read LICENSE.txt for more information.
|
||||||
@ -54,7 +54,7 @@ static void Bm_Render(benchmark::State& state)
|
|||||||
std::unique_ptr<Image> dst(Image::create(spr->pixelFormat(), w, h));
|
std::unique_ptr<Image> dst(Image::create(spr->pixelFormat(), w, h));
|
||||||
clear_image(dst.get(), 0);
|
clear_image(dst.get(), 0);
|
||||||
|
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
clear_image(dst.get(), 0);
|
clear_image(dst.get(), 0);
|
||||||
|
|
||||||
Render render;
|
Render render;
|
||||||
|
@ -28,7 +28,7 @@ void BM_ViewBase(benchmark::State& state) {
|
|||||||
mgr->layout();
|
mgr->layout();
|
||||||
mgr->dontWaitEvents();
|
mgr->dontWaitEvents();
|
||||||
|
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
// Do nothing case
|
// Do nothing case
|
||||||
mgr->generateMessages();
|
mgr->generateMessages();
|
||||||
mgr->dispatchMessages();
|
mgr->dispatchMessages();
|
||||||
@ -51,7 +51,7 @@ void BM_ViewScrollListBox(benchmark::State& state) {
|
|||||||
const auto max = view->getScrollableSize();
|
const auto max = view->getScrollableSize();
|
||||||
int y = 0;
|
int y = 0;
|
||||||
|
|
||||||
while (state.KeepRunning()) {
|
for (auto _ : state) {
|
||||||
view->setViewScroll(gfx::Point(0, y));
|
view->setViewScroll(gfx::Point(0, y));
|
||||||
mgr->generateMessages();
|
mgr->generateMessages();
|
||||||
mgr->dispatchMessages();
|
mgr->dispatchMessages();
|
||||||
@ -89,8 +89,9 @@ int app_main(int argc, char* argv[])
|
|||||||
window.addChild(g_view = new ui::View);
|
window.addChild(g_view = new ui::View);
|
||||||
window.openWindow();
|
window.openWindow();
|
||||||
|
|
||||||
::benchmark::Initialize(&argc, argv);
|
benchmark::Initialize(&argc, argv);
|
||||||
int status = ::benchmark::RunSpecifiedBenchmarks();
|
benchmark::RunSpecifiedBenchmarks();
|
||||||
|
benchmark::Shutdown();
|
||||||
|
|
||||||
return status;
|
return 0;
|
||||||
}
|
}
|
||||||
|
2
third_party/benchmark
vendored
2
third_party/benchmark
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 02a354f3f323ae8256948e1dc77ddcb1dfc297da
|
Subproject commit c58e6d0710581e3a08d65c349664128a8d9a2461
|
Loading…
x
Reference in New Issue
Block a user