Skip to content

Commit 58e3af5

Browse files
jsternbergtonistiigi
authored andcommitted
Avoid unnecessary map allocation when writing progress
`MultiWriter` would create an unnecessary map allocation when the `Write` method was used. The `Write` method would create a progress object with the meta field initialized to the meta field of the writer itself. It then invoked its own `WriteRawProgress` method which would see two maps with the metadata and erroneously believe that they were different and needed to be merged into a single metadata map. Since this map is initialized with the metadata of the writer before `WriteRawProgress` is invoked, this merge was unnecessary and could add a lot of unnecessary memory allocations during a build. This changes the `MultiWriter.Write` method to invoke the private `writeRawProgress` which performs the actual write and avoids the metadata merge. Signed-off-by: Jonathan A. Sternberg <[email protected]> (cherry picked from commit 4c83fcf)
1 parent 2a6aace commit 58e3af5

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

util/progress/multiwriter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func (ps *MultiWriter) Write(id string, v interface{}) error {
6565
Sys: v,
6666
meta: ps.meta,
6767
}
68-
return ps.WriteRawProgress(p)
68+
return ps.writeRawProgress(p)
6969
}
7070

7171
func (ps *MultiWriter) WriteRawProgress(p *Progress) error {

0 commit comments

Comments
 (0)