Skip to content

Commit dc23bef

Browse files
committed
Faster buffering of output
1 parent 4e8222f commit dc23bef

File tree

1 file changed

+20
-21
lines changed

1 file changed

+20
-21
lines changed

statistics.go

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package main
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"net/http"
76
"os"
@@ -47,7 +46,7 @@ func fetchStatisticsForRepo(repourl, reponame string, wg *sync.WaitGroup) {
4746
panic(err)
4847
}
4948

50-
buffer := bytes.Buffer{}
49+
buffer := make([]byte, 0, 30+len(reponame))
5150

5251
for _, stat := range stats {
5352
if stat.Assets == nil || len(stat.Assets) == 0 {
@@ -57,31 +56,31 @@ func fetchStatisticsForRepo(repourl, reponame string, wg *sync.WaitGroup) {
5756
for _, asset := range stat.Assets {
5857
totalDownloads += asset.DownloadCount
5958

60-
buffer.WriteString("Repo: ")
61-
buffer.WriteString(reponame)
62-
buffer.WriteByte('\t')
59+
buffer = append(buffer, "Repo: "...)
60+
buffer = append(buffer, reponame...)
61+
buffer = append(buffer, '\t')
6362

64-
buffer.WriteString("Asset: ")
65-
buffer.WriteString(asset.Name)
66-
buffer.WriteString("\t\t")
63+
buffer = append(buffer, "Asset: "...)
64+
buffer = append(buffer, asset.Name...)
65+
buffer = append(buffer, '\t', '\t')
6766

68-
buffer.WriteString("Count: ")
69-
buffer.WriteString(strconv.FormatUint(asset.DownloadCount, 10))
70-
buffer.WriteByte('\t')
67+
buffer = append(buffer, "Count: "...)
68+
buffer = strconv.AppendUint(buffer, asset.DownloadCount, 10)
69+
buffer = append(buffer, '\t')
7170

72-
buffer.WriteString("Date: ")
73-
buffer.WriteString(asset.Date.Format(time.RFC850))
74-
buffer.WriteByte('\n')
71+
buffer = append(buffer, "Date: "...)
72+
buffer = asset.Date.AppendFormat(buffer, time.RFC850)
73+
buffer = append(buffer, '\n')
7574
}
7675

77-
buffer.WriteByte('\n')
76+
buffer = append(buffer, '\n')
7877
}
7978

80-
buffer.WriteString("Total downloads for ")
81-
buffer.WriteString(reponame)
82-
buffer.WriteString(": ")
83-
buffer.WriteString(strconv.FormatUint(totalDownloads, 10))
84-
buffer.WriteString("\n\n")
79+
buffer = append(buffer, "Total downloads for "...)
80+
buffer = append(buffer, reponame...)
81+
buffer = append(buffer, ':', ' ')
82+
buffer = strconv.AppendUint(buffer, totalDownloads, 10)
83+
buffer = append(buffer, '\n', '\n')
8584

86-
os.Stdout.Write(buffer.Bytes())
85+
os.Stdout.Write(buffer)
8786
}

0 commit comments

Comments
 (0)