Skip to content

perf: timeline optimisation + tidy up#719

Merged
lcottercertinia merged 17 commits intocertinia:mainfrom
lukecotter:chore-timeline-optimisation
Feb 10, 2026
Merged

perf: timeline optimisation + tidy up#719
lcottercertinia merged 17 commits intocertinia:mainfrom
lukecotter:chore-timeline-optimisation

Conversation

@lukecotter
Copy link
Copy Markdown
Contributor

📝 PR Overview

General tidy of the new timeline

performance optimisations

🧩 Type of change (check all applicable)

  • 🐛 Bug fix - something not working as expected
  • ✨ New feature – adds new functionality
  • ♻️ Refactor - internal changes with no user impact
  • ⚡ Performance Improvement
  • 📝 Documentation - README or documentation site changes
  • 🔧 Chore - dev tooling, CI, config
  • 💥 Breaking change

📷 Screenshots / gifs / video [optional]

Show off your UI changes.

🔗 Related Issues

fixes #
resolves #
closes #
related #564
related #446

✅ Tests added?

  • 👍 yes
  • 🙅 no, not needed
  • 🙋 no, I need help

📚 Docs updated?

  • 🔖 README.md
  • 🔖 CHANGELOG.md
  • 📖 help site
  • 🙅 not needed

Anything else we need to know? [optional]

…ng utilities

- Add MarkerHitTest utility for efficient hit testing of timeline markers.
- Refactor MeshMarkerRenderer and TimelineMarkerRenderer to utilize hitTestMarkers for hover detection.
- Introduce ColorUtils for parsing CSS color strings to PixiJS numeric hex format.
- Create LabelPositioning utilities for consistent tooltip styling in AreaZoomRenderer and MeasureRangeRenderer.
- Update AreaZoomRenderer and MeasureRangeRenderer to use createTimelineLabel for label creation and calculateLabelPosition for positioning.
- Extend flamechart.types with InteractionModeType and DragModeState for unified drag interaction handling.
@lcottercertinia lcottercertinia changed the title perf: timeline optimisation = tidy up perf: timeline optimisation + tidy up Feb 5, 2026
lcottercertinia
lcottercertinia previously approved these changes Feb 7, 2026
…or performance optimization

- Added a unified conversion function that combines tree conversion and rectangle pre-computation in a single O(n) pass, significantly reducing redundant traversals.
- Introduced precomputed data structures to optimize rendering and calculations in FlameChart, RectangleManager, and TemporalSegmentTree.
- Enhanced TimelineEventIndex to utilize precomputed metrics, improving initialization speed.
- Updated RectangleManager to accept precomputed rectangles, avoiding unnecessary calculations.
- Optimized MinimapDensityQuery to use binary search for frame retrieval, reducing overhead during bucket processing.
- Deferred initialization of search renderers in SearchOrchestrator to improve initial load times.
- Improved performance across various components, achieving up to 300ms savings on large event logs.
lcottercertinia
lcottercertinia previously approved these changes Feb 9, 2026
lcottercertinia
lcottercertinia previously approved these changes Feb 9, 2026
@lcottercertinia lcottercertinia merged commit 5cbfda3 into certinia:main Feb 10, 2026
5 checks passed
@lukecotter lukecotter deleted the chore-timeline-optimisation branch February 10, 2026 17:54
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.

2 participants