Skip to content

Commit d086aef

Browse files
committed
perf: dag stat emit a resonse after each recursion step instead
That bundles all raw leaves emissions in skip mode in one.
1 parent 90dbf55 commit d086aef

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

core/commands/dag/stat.go

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,14 @@ func (t *statTraversal) pump() error {
7070
return err
7171
}
7272

73-
if t.runners == 0 {
74-
// FINISHED !
73+
finished := t.runners == 0
74+
if t.progressive || finished {
75+
if err := t.res.Emit(&t.stats); err != nil {
76+
return err
77+
}
78+
}
79+
80+
if finished {
7581
return nil
7682
}
7783
}
@@ -89,12 +95,6 @@ func (t *statTraversal) handleStating(c cid.Cid, nodeLen uint64) error {
8995
t.stats.Size += nodeLen
9096
}
9197
t.stats.NumBlocks++
92-
93-
if t.progressive {
94-
if err := t.res.Emit(&t.stats); err != nil {
95-
return err
96-
}
97-
}
9898
return nil
9999
}
100100

@@ -182,12 +182,6 @@ func dagStat(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment)
182182
return fmt.Errorf("error traversing DAG: %w", err)
183183
}
184184

185-
if !progressive {
186-
if err := res.Emit(&t.stats); err != nil {
187-
return err
188-
}
189-
}
190-
191185
return nil
192186
}
193187

0 commit comments

Comments
 (0)