Vector35 / Vector35/binaryninja-api

Poor performance during phase 3 of linear sweep during control flow only analysis

Open
#7,452 1 comment 0 reactions 1 assignee View on GitHub

@bdash is already working on this.

Since Oct 2, 2025.

Component: Core
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Version and Platform (required):

  • Binary Ninja Version: 5.2.8341-dev Ultimate, 86294f12
  • OS: macos
  • OS Version: 26.0
  • CPU Architecture: arm64

Bug Description:
A user on Slack pointed out that when doing a control flow only analysis on pacific cosmos projects modularly, a very large percentage of time is spent in phase 3 of linear sweep. It ends up running 28 iterations before it converges, taking around 10 minutes.

Steps To Reproduce:

  1. Open with Options and set analysis.mode to controlFlow.
  2. Wait.

Observed Behavior:
Using a stopwatch, I measured that it takes around 13 minutes for the initial analysis to complete. Phase 2.1 finishes after around 2.5 minutes. Phase 3.0 takes over 5 minutes. The subsequent subphases get faster as fewer new functions are discovered, but the "grouping basic blocks" step between each of them takes significant time. In total Phase 3 takes around 10 minutes.

Binary:
pacific cosmos projects modularly

Additional Information:
After analysis completes, the binary has ~718,000 functions and over 3 million basic blocks.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.