f811fc331a
This helps stability of benchmark across repeated runs, and across code changes. Previously, a change to the tuned loop count could radically change the allocation behavior within the loop's iteration and lead to unfair comparisons. In addition, this separates the stack allocation pattern into N allocations followed by N LIFO releases, and a push-pop alternating pattern of N allocates and releases (so still LIFO, but reuses the memory at the start of a block). In later CLs experimenting on the memory pool, I found that there were surprising effects on performance linked to the specific interaction between the allocation size, per-allocation metadata, and per-block metadata. To help differentiate these coincidences, this adds two modes of allocation where one should already be aligned. It also moves away from a global pool, so that it's possible to benchmark on different block sizes and factor in the allocation/release cost of the actual blocks (vs. the cursor management of a larger sized pool). As part of this, the new/delete reference operator is added as an explicit benchmark. Change-Id: I12b8c11cb75db0df70460fe2e8cf6c029db7eb22 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/262936 Commit-Queue: Michael Ludwig <michaelludwig@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> |
||
---|---|---|
animations | ||
bench | ||
bin | ||
build/fuchsia | ||
build_overrides | ||
dm | ||
docker | ||
docs/examples | ||
example | ||
experimental | ||
fuzz | ||
gm | ||
gn | ||
include | ||
infra | ||
modules | ||
platform_tools | ||
resources | ||
samplecode | ||
site | ||
specs | ||
src | ||
tests | ||
third_party | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
.gn | ||
AUTHORS | ||
BUILD.gn | ||
codereview.settings | ||
CONTRIBUTING | ||
CQ_COMMITTERS | ||
DEPS | ||
go.mod | ||
go.sum | ||
LICENSE | ||
OWNERS | ||
PRESUBMIT.py | ||
public.bzl | ||
README | ||
README.chromium | ||
RELEASE_NOTES.txt | ||
whitespace.txt |
Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See full details, and build instructions, at https://skia.org.