Blackfire compares two profiles, which is the useful part

A single profile tells you where the time goes and leaves the question of whether that is unusual. A comparison between two profiles answers the question you actually have: what changed.

blackfire run php bin/export.php            # reference
# ... change something ...
blackfire run --reference=41 php bin/export.php

# and in CI, as a gate rather than a report
# .blackfire.yml
# tests:
#   "Product page stays under budget":
#     path: "/products/.*"
#     assertions:
#       - "metrics.sql.queries.count < 10"
#       - "main.peak_memory < 20M"

The assertions are the part worth setting up, because they turn performance from something noticed after a release into something that fails a build. A query-count assertion catches the N+1 a new eager-load omission introduces, which is otherwise invisible until the data grows. The overhead is low enough to profile production traffic occasionally, which Xdebug is not.