Skip to content

Profile cpplink with samply and flamegraphs #6

Open

Description

@4ment

Profile cpplink with samply and flamegraphs

Goal

Profile cpplink to identify performance bottlenecks and understand where CPU time is being spent.

Use samply for statistical sampling and generate flamegraphs to provide a compact visual representation of the profiling results.

Tasks

  • Set up a reproducible profiling workflow using samply.

  • Profile representative cpplink workloads/benchmarks.

  • Capture profiles for the main stages of the pipeline, where practical:

    • Data loading/parsing
    • Blocking
    • Comparison
    • Parameter estimation
    • Prediction/scoring
    • Clustering
    • Output
  • Generate flamegraphs from profiling data.

  • Identify the most expensive functions and call paths.

  • Determine whether significant time is spent in:

    • cpplink code
    • string processing/comparisons
    • data structures/memory access
    • Arrow/Parquet
    • threading/synchronisation
    • third-party libraries
  • Record the main findings and potential optimisation opportunities.

  • Keep profiling commands/scripts in the repository so the analysis can be reproduced.

Expected outcome

A documented profiling workflow and a set of flamegraphs for representative workloads, together with a short summary of the main CPU bottlenecks and potential optimisation targets.

The profiling should be used to guide optimisation rather than optimising individual functions without evidence from representative workloads.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions