Просмотр исходного кода

perf(misc): preallocate some slices

jvoisin 5 дней назад
Родитель
Сommit
cc1d39efe1

+ 1 - 1
internal/integration/karakeep/karakeep.go

@@ -58,7 +58,7 @@ func (c *Client) attachTags(entryID string) error {
 		return nil
 	}
 
-	tagItems := make([]tagItem, 0)
+	tagItems := make([]tagItem, 0, strings.Count(c.tags, ",")+1)
 	for tag := range strings.SplitSeq(c.tags, ",") {
 		if trimmedTag := strings.TrimSpace(tag); trimmedTag != "" {
 			tagItems = append(tagItems, tagItem{TagName: trimmedTag})

+ 2 - 2
internal/reader/atom/atom_common.go

@@ -97,7 +97,7 @@ func (a atomLinks) firstLinkWithRelationAndType(relation string, contentTypes ..
 }
 
 func (a atomLinks) findAllLinksWithRelation(relation string) []*AtomLink {
-	var links []*AtomLink
+	links := make([]*AtomLink, 0, len(a))
 
 	for _, link := range a {
 		if strings.EqualFold(link.Rel, relation) {
@@ -137,7 +137,7 @@ type atomCategory struct {
 type atomCategories []atomCategory
 
 func (ac atomCategories) CategoryNames() []string {
-	var categories []string
+	categories := make([]string, 0, len(ac))
 
 	for _, category := range ac {
 		label := strings.TrimSpace(category.Label)

+ 1 - 1
internal/reader/json/adapter.go

@@ -130,7 +130,7 @@ func (j *JSONAdapter) BuildFeed(baseURL string) *model.Feed {
 		itemAuthors = append(itemAuthors, item.Authors...)
 		itemAuthors = append(itemAuthors, item.Author, j.jsonFeed.Author)
 
-		var authorNames []string
+		var authorNames = make([]string, 0, len(itemAuthors))
 		for _, author := range itemAuthors {
 			authorName := strings.TrimSpace(author.Name)
 			if authorName != "" {