9 Commits
Author SHA1 Message Date
Andreas Haas e9d02eb56e [benchmark] Fix C++ benchmarks build in a Chrome checkout
Update test/benchmarks/cpp/BUILD.gn and test/benchmarks/cpp/cppgc/BUILD.gn
so that fast_api_benchmark and other C++ benchmarks can be built in a
Chrome checkout (build_with_chromium) in addition to a standalone V8
checkout:

- Use relative paths (../../..:v8, ../../..:v8_libbase, etc.) instead of
  root-relative paths (//:v8) which point to the Chromium root in a
  Chrome checkout.
- Add ../../..:internal_config_base to benchmark targets so V8 include
  paths are configured when building in Chromium.
- Depend on //third_party/google_benchmark when build_with_chromium is
  true instead of //third_party/google_benchmark_chrome.
- Add //build/config/compiler:no_exit_time_destructors to cppgc
  benchmarks.
- Include "benchmark/benchmark.h" via the benchmark_config include_dirs
  instead of hardcoding the third_party/google_benchmark_chrome path.

TAG=agy
CONV=33ee5221-0921-45d8-bcc0-6413b5599ef7

Change-Id: Ia6cf7c1b8651b7808046003c16139b9c48570d01
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8657242
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#111149}
2026-10-26 05:59:52 -07:00
Igor Sheludko e74e6c524c [cppgc] Rename src/heap/cppgc/ to src/heap/cppgc-internal/
Rename the internal cppgc directory to src/heap/cppgc-internal/ to
clearly distinguish it from the public include/cppgc/ headers and
avoid potential naming confusion.
The collision occurs on Windows builds where -Wmicrosoft-include
is enabled by Clang in MSVC compatible mode. MSVC on Windows uses
different order of directories where the files are searched by the
compiler and `#include "cppgc/blah.h"` in public headers might end up
including "src/heap/cppgc/blah.h" if it exists.

All internal #include paths, include guards, and build configurations
(BUILD.gn and BUILD.bazel) have been updated to reflect the new path.

TAG=agy
CONV=47b06028-d652-41a8-b4f1-39e3cc478096

Bug: 515252150
Change-Id: Idf7ca1d193a8b6bb9d53b22f01320f4363df36f4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7963663
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
Cr-Commit-Position: refs/heads/main@{#108143}
2026-06-22 02:41:04 -07:00
Michael Achenbach 66253e1b99 [build] Use a new google_benchmark location to avoid conflicts
Using the same path for DEPS'ed and previously checked-in files
causes conflicts when going back and forth between new and old
revisions. Since all references here are v8 stand-alone, the
exact location shouldn't be important. Therefore we use some
new name to avoid conflicts when locally running `gclient sync`.

Bug: chromium:1513046
Change-Id: Icf1ecc4d9b1f9c7e67b5a542c2be08ff9738d045
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5184217
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Liviu Rau <liviurau@google.com>
Cr-Commit-Position: refs/heads/main@{#91760}
2024-01-10 14:37:11 +00:00
Michael Lippautz 3eae9d57ef cppgc: Initialize benchmark process only once
Otherwise, DCHECKs complain that the PageAllocator used for the
GlobalGCInfoTable may differ when setting up the platform repeatedly
through benchmarking SetUp().

Change-Id: I7e87e8c9d8c283105e1bd75a4cd176df7f304315
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3283075
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77920}
2021-11-16 13:15:44 +00:00
Michael Lippautz 707c5a0b38 cppgc: Fix empty benchmark on Windows
Keep idiomatic state loop but rely on USE() to avoid
warning about unused variables.

Bug: v8:11687
Change-Id: Icde295723c5d389d827280f70a65776866d4e7a9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850645
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74200}
2021-04-27 07:52:52 +00:00
Michael Lippautz 224b7f079c cppgc: Fix trace performance benchmark
Bug: v8:11635
Change-Id: I71c5542a503ca4b94fc3c8746e96fb0bc4e6c1f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2822628
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73922}
2021-04-12 19:31:33 +00:00
Chris Mumford 84d2527bb0 IWYU: Added missing include: include/cppgc/persistent.h
This missing include was undetected because trace_perf.cc is only
built if the checkout_google_benchmark custom gclient variable is
defined.

Bug: none
Change-Id: If2016edad4df382f14903593ea18066f7759c4d5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2698387
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Chris Mumford <cmumford@google.com>
Cr-Commit-Position: refs/heads/master@{#72825}
2021-02-17 17:37:29 +00:00
Omer Katz ab2b18e1be cppgc: Use object start bitmap to trace mixins
This CL removes the GetTraceDescriptor virtual call from garbage
collected mixins and replaces it with querying the object start
bitmap.

The CL also removes the mixin macros which are now no longer needed.

Bug: chromium:1056170
Change-Id: I27ed299f93025d09a3bb3f0d17b14bed3c200565
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2287508
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68787}
2020-07-10 12:00:45 +00:00
Michael Lippautz 5ab2769012 cppgc: Add micro benchmark for tracing objects
The benchmarks cover static vs dynamic tracing of an object where the
header is computed statically vs using the object start bitmap,
respectively.

$ out/x64.release/cppgc_basic_benchmarks --benchmark_filter=Trace/*

Running out/x64.release/cppgc_basic_benchmarks
Run on (56 X 3500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x28)
  L1 Instruction 32 KiB (x28)
  L2 Unified 256 KiB (x28)
  L3 Unified 35840 KiB (x2)
Load Average: 0.24, 0.26, 0.26
--------------------------------------------------------
Benchmark              Time             CPU   Iterations
--------------------------------------------------------
Trace/Static        1.78 ns         1.78 ns    393324147
Trace/Dynamic       3.27 ns         3.27 ns    215078276

2020-07-03T15: 21:25+02:00
Change-Id: I8bf5a8ed71a8991873160353e26f96214c038730
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2280099
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68675}
2020-07-03 14:50:43 +00:00