Skip to content

Instrument native and cooperative UI hot paths - #172

Closed
10-X-eng wants to merge 3 commits into
performance/system-wide-uifrom
performance/native-hotpath-instrumentation
Closed

Instrument native and cooperative UI hot paths#172
10-X-eng wants to merge 3 commits into
performance/system-wide-uifrom
performance/native-hotpath-instrumentation

Conversation

@10-X-eng

@10-X-eng 10-X-eng commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • reuse the existing Tracy integration to name document, Tree, Timeline, and Part view-provider hot paths
  • reuse the existing Python performance recorder through one private, opt-in cooperative-scheduler hook with stable job identity
  • preserve the disabled hot path: no timer, import, trace allocation, or file I/O, and one null check per cooperative slice
  • make Tracy's existing shared-library default survive Tracy 0.11.1's CMake policy behavior
  • record real Windows trace and exact packaged-runtime evidence in PERFORMANCE.md

This is a measurement slice in the system-wide performance program. It adds no worker, public API, preference, schema, or duplicate tracing framework.

Verification

  • For code changes, a test failed before the implementation and passes afterward; for non-code changes, the PR explains why TDD does not apply.
  • The PR lists the exact build and test commands and their results.

Red/green evidence:

  • test_document_steps_emit_opt_in_gui_spans_with_operation_identity failed before the scheduler was connected to the existing recorder.
  • test_domain_adapter_cooperatively_dispatches_each_publication_step failed with trace_attributes is None before VibeScript supplied stable operation identity.
  • ..\..\.pixi\envs\default\python.exe -m pytest -q src\Mod\VibeCAD\vibecad_tests\test_cooperative_document_execution.py src\Mod\VibeCAD\vibecad_tests\test_performance.py src\Mod\VibeCAD\vibecad_tests\test_vibescript_publication_progress.py src\Mod\VibeCAD\vibecad_tests\test_native_background.py src\Mod\VibeCAD\vibecad_tests\test_native_analyze_solver_execution.py src\Mod\VibeCAD\vibecad_tests\test_native_drawing_view.py src\Mod\VibeCAD\vibecad_tests\test_native_registry.py — 86 passed in 8.24 seconds.
  • pixi install -e default --frozen from package/rattler-build — Windows Release package succeeded in 17 minutes; 8,384 files, 489.45 MiB, vibecad-26.3.1RC6-h3c70cbc_1.conda.
  • scripts/install_vibecad_provider_deps.sh .pixi/envs/default — completed; no broken requirements; provider, Aero, and keyring imports passed.
  • Exact packaged GUI probe — VIBECAD_PERFORMANCE_TRACE_GUI_OK slices=4 heartbeat_samples=45, exit code 0.
  • Full Tracy-enabled Windows Release build/install — succeeded. Clean configure produced TRACY_STATIC:BOOL=OFF and shared TracyClient.dll.
  • Native 24-solid trace workload — completed; 231 KiB capture exported all named zones. Observed maxima are recorded in PERFORMANCE.md.
  • git diff --check 99044673 — clean.

Compatibility

  • Existing public functions/APIs still present and behaviorally compatible.
  • No preference keys, tool names, or schema fields renamed or removed.
  • Defaults preserve previous behavior; detailed tracing remains opt-in.
  • No deprecations or breaking changes.

Issues

Tracks #167. This PR deliberately does not close the performance program; representative-scale optimization and proof remain open.

Risk and non-goals

Risk is limited to opt-in measurement code and Tracy linkage configuration. This PR does not claim benchmark completion, alter CAD behavior, or attempt an optimization before representative measurements exist.

@10-X-eng

10-X-eng commented Sep 6, 2026

Copy link
Copy Markdown
Owner Author

Closed at the repository owner request; this performance implementation is being discarded.

@10-X-eng 10-X-eng closed this Sep 6, 2026
@10-X-eng
10-X-eng deleted the performance/native-hotpath-instrumentation branch September 6, 2026 19:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant