Skip to content
This repository was archived by the owner on Jun 18, 2026. It is now read-only.

perf: use incident-edge iteration in GraphSampler for faster subgraph induction - #140

Merged
sauravbhattacharya001 merged 1 commit into
masterfrom
perf/sampler-incident-edge-iteration
Mar 30, 2026
Merged

sauravbhattacharya001 merged 1 commit into
masterfrom
perf/sampler-incident-edge-iteration

Conversation

@sauravbhattacharya001

Copy link
Copy Markdown
Owner

Problem

\�uildResult\ and \�uildResultFromEdges\ in \GraphSampler\ iterate over all edges in the original graph to find which ones connect sampled nodes. For small sample fractions (e.g., 10% of a large graph), this scans 100% of edges to find the ~1% that matter.

Fix

Iterate over incident edges of sampled nodes instead. Uses a \HashSet\ to avoid duplicates (each undirected edge is incident to both endpoints).

Complexity change: O(|E_original|) → O(Σ degree(v) for v in sample)

For a 10% node sample on a 100K-edge sparse graph, this can be ~10x faster.

Changes

  • \�uildResult: replaced full edge scan with incident-edge loop + dedup set
  • \�uildResultFromEdges: same optimization for the induced-edge second pass

…e scan

When building induced subgraphs from sampled nodes, buildResult and
buildResultFromEdges previously iterated over ALL edges in the
original graph — O(|E_original|) — to find which ones connect sampled
nodes. For small sample fractions on large graphs, this is wasteful.

Now iterates over incident edges of sampled nodes only, reducing
edge-induction cost to O(sum of degrees of sampled nodes). For a
10% sample of a 100K-edge graph, this can be 10x faster.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions github-actions Bot added visualization Graph visualization and UI size/m labels Mar 29, 2026
@sauravbhattacharya001
sauravbhattacharya001 merged commit 5ba053a into master Mar 30, 2026
4 of 8 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

size/m visualization Graph visualization and UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant