Skip to content
This repository has been archived by the owner on Dec 26, 2023. It is now read-only.

Commit

Permalink
chore(perf): pre-allocate slices
Browse files Browse the repository at this point in the history
  • Loading branch information
leg100 committed Oct 29, 2023
1 parent 71b383d commit ccc8b6e
Show file tree
Hide file tree
Showing 18 changed files with 89 additions and 97 deletions.
6 changes: 3 additions & 3 deletions internal/auth/team_db.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,9 @@ func (db *pgdb) listTeams(ctx context.Context, organization string) ([]*Team, er
return nil, err
}

var items []*Team
for _, r := range result {
items = append(items, teamRow(r).toTeam())
items := make([]*Team, len(result))
for i, r := range result {
items[i] = teamRow(r).toTeam()
}
return items, nil
}
Expand Down
6 changes: 3 additions & 3 deletions internal/auth/tfe.go
Original file line number Diff line number Diff line change
Expand Up @@ -310,9 +310,9 @@ func (a *tfe) modifyTeamMembers(r *http.Request, action teamMembersAction) error
}

// convert users into a simple slice of usernames
var usernames []string
for _, u := range users {
usernames = append(usernames, u.Username)
usernames := make([]string, len(users))
for i, u := range users {
usernames[i] = u.Username
}

switch action {
Expand Down
18 changes: 9 additions & 9 deletions internal/auth/user_db.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ func (db *pgdb) listUsers(ctx context.Context) ([]*User, error) {
if err != nil {
return nil, err
}
var users []*User
for _, r := range result {
users = append(users, userRow(r).toUser())
users := make([]*User, len(result))
for i, r := range result {
users[i] = userRow(r).toUser()
}
return users, nil
}
Expand All @@ -48,9 +48,9 @@ func (db *pgdb) listOrganizationUsers(ctx context.Context, organization string)
if err != nil {
return nil, err
}
var users []*User
for _, r := range result {
users = append(users, userRow(r).toUser())
users := make([]*User, len(result))
for i, r := range result {
users[i] = userRow(r).toUser()
}
return users, nil
}
Expand All @@ -61,9 +61,9 @@ func (db *pgdb) listTeamMembers(ctx context.Context, teamID string) ([]*User, er
return nil, err
}

var items []*User
for _, r := range result {
items = append(items, userRow(r).toUser())
items := make([]*User, len(result))
for i, r := range result {
items[i] = userRow(r).toUser()
}
return items, nil
}
Expand Down
7 changes: 3 additions & 4 deletions internal/configversion/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,10 @@ func (db *pgdb) ListConfigurationVersions(ctx context.Context, workspaceID strin
return nil, err
}

var items []*ConfigurationVersion
for _, r := range rows {
items = append(items, pgRow(r).toConfigVersion())
items := make([]*ConfigurationVersion, len(rows))
for i, r := range rows {
items[i] = pgRow(r).toConfigVersion()
}

return resource.NewPage(items, opts.PageOptions, internal.Int64(count.Int)), nil
}

Expand Down
6 changes: 3 additions & 3 deletions internal/github/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,9 +238,9 @@ func (g *Client) ListTags(ctx context.Context, opts vcs.ListTagsOptions) ([]stri
}

// return tags with the format 'tags/<tag_value>'
var tags []string
for _, ref := range results {
tags = append(tags, strings.TrimPrefix(ref.GetRef(), "refs/"))
tags := make([]string, len(results))
for i, ref := range results {
tags[i] = strings.TrimPrefix(ref.GetRef(), "refs/")
}
return tags, nil
}
Expand Down
12 changes: 6 additions & 6 deletions internal/gitlab/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,9 @@ func (g *Client) ListRepositories(ctx context.Context, lopts vcs.ListRepositorie
return nil, err
}

var repos []string
for _, proj := range projects {
repos = append(repos, proj.PathWithNamespace)
repos := make([]string, len(projects))
for i, proj := range projects {
repos[i] = proj.PathWithNamespace
}
return repos, nil
}
Expand All @@ -124,9 +124,9 @@ func (g *Client) ListTags(ctx context.Context, opts vcs.ListTagsOptions) ([]stri
return nil, err
}

var tags []string
for _, ref := range results {
tags = append(tags, fmt.Sprintf("tags/%s", ref.Name))
tags := make([]string, len(results))
for i, ref := range results {
tags[i] = fmt.Sprintf("tags/%s", ref.Name)
}
return tags, nil
}
Expand Down
6 changes: 3 additions & 3 deletions internal/module/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ func (db *pgdb) listModules(ctx context.Context, opts ListModulesOptions) ([]*Mo
return nil, err
}

var modules []*Module
for _, r := range rows {
modules = append(modules, moduleRow(r).toModule())
modules := make([]*Module, len(rows))
for i, r := range rows {
modules[i] = moduleRow(r).toModule()
}
return modules, nil
}
Expand Down
2 changes: 1 addition & 1 deletion internal/module/web.go
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ func (h *webHandlers) newModuleRepo(w http.ResponseWriter, r *http.Request) {
h.Error(w, err.Error(), http.StatusInternalServerError)
return
}
var filtered []string
filtered := make([]string, 0, len(results))
for _, res := range results {
_, _, err := Repo(res).Split()
if err == ErrInvalidModuleRepo {
Expand Down
12 changes: 6 additions & 6 deletions internal/notifications/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,9 @@ func (db *pgdb) list(ctx context.Context, workspaceID string) ([]*Config, error)
return nil, sql.Error(err)
}

var configs []*Config
for _, row := range results {
configs = append(configs, pgresult(row).toNotificationConfiguration())
configs := make([]*Config, len(results))
for i, row := range results {
configs[i] = pgresult(row).toNotificationConfiguration()
}
return configs, nil
}
Expand All @@ -126,9 +126,9 @@ func (db *pgdb) listAll(ctx context.Context) ([]*Config, error) {
return nil, sql.Error(err)
}

var configs []*Config
for _, row := range results {
configs = append(configs, pgresult(row).toNotificationConfiguration())
configs := make([]*Config, len(results))
for i, row := range results {
configs[i] = pgresult(row).toNotificationConfiguration()
}
return configs, nil
}
Expand Down
7 changes: 3 additions & 4 deletions internal/organization/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,10 @@ func (db *pgdb) list(ctx context.Context, opts dbListOptions) (*resource.Page[*O
return nil, err
}

var items []*Organization
for _, r := range rows {
items = append(items, row(r).toOrganization())
items := make([]*Organization, len(rows))
for i, r := range rows {
items[i] = row(r).toOrganization()
}

return resource.NewPage(items, opts.PageOptions, internal.Int64(count.Int)), nil
}

Expand Down
7 changes: 3 additions & 4 deletions internal/run/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -362,11 +362,10 @@ func (db *pgdb) ListRuns(ctx context.Context, opts ListOptions) (*resource.Page[
return nil, err
}

var items []*Run
for _, r := range rows {
items = append(items, pgresult(r).toRun())
items := make([]*Run, len(rows))
for i, r := range rows {
items[i] = pgresult(r).toRun()
}

return resource.NewPage(items, opts.PageOptions, internal.Int64(count.Int)), nil
}

Expand Down
7 changes: 3 additions & 4 deletions internal/state/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,10 @@ func (db *pgdb) listVersions(ctx context.Context, workspaceID string, opts resou
return nil, err
}

var items []*Version
for _, r := range rows {
items = append(items, pgRow(r).toVersion())
items := make([]*Version, len(rows))
for i, r := range rows {
items[i] = pgRow(r).toVersion()
}

return resource.NewPage(items, opts, internal.Int64(count.Int)), nil
}

Expand Down
16 changes: 8 additions & 8 deletions internal/tokens/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ func (db *pgdb) listUserTokens(ctx context.Context, username string) ([]*UserTok
if err != nil {
return nil, err
}
var tokens []*UserToken
for _, row := range result {
tokens = append(tokens, &UserToken{
tokens := make([]*UserToken, len(result))
for i, row := range result {
tokens[i] = &UserToken{
ID: row.TokenID.String,
CreatedAt: row.CreatedAt.Time.UTC(),
Description: row.Description.String,
Username: row.Username.String,
})
}
}
return tokens, nil
}
Expand Down Expand Up @@ -202,11 +202,11 @@ func (db *pgdb) listAgentTokens(ctx context.Context, organization string) ([]*Ag
if err != nil {
return nil, sql.Error(err)
}
var unmarshalled []*AgentToken
for _, r := range rows {
unmarshalled = append(unmarshalled, agentTokenRow(r).toAgentToken())
tokens := make([]*AgentToken, len(rows))
for i, r := range rows {
tokens[i] = agentTokenRow(r).toAgentToken()
}
return unmarshalled, nil
return tokens, nil
}

func (db *pgdb) deleteAgentToken(ctx context.Context, id string) error {
Expand Down
18 changes: 9 additions & 9 deletions internal/vcsprovider/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,13 +116,13 @@ func (db *pgdb) list(ctx context.Context) ([]*VCSProvider, error) {
if err != nil {
return nil, sql.Error(err)
}
var providers []*VCSProvider
for _, r := range rows {
providers := make([]*VCSProvider, len(rows))
for i, r := range rows {
provider, err := db.toProvider(ctx, pgrow(r))
if err != nil {
return nil, err
}
providers = append(providers, provider)
providers[i] = provider
}
return providers, nil
}
Expand All @@ -132,13 +132,13 @@ func (db *pgdb) listByOrganization(ctx context.Context, organization string) ([]
if err != nil {
return nil, sql.Error(err)
}
var providers []*VCSProvider
for _, r := range rows {
providers := make([]*VCSProvider, len(rows))
for i, r := range rows {
provider, err := db.toProvider(ctx, pgrow(r))
if err != nil {
return nil, err
}
providers = append(providers, provider)
providers[i] = provider
}
return providers, nil
}
Expand All @@ -150,13 +150,13 @@ func (db *pgdb) listByGithubAppInstall(ctx context.Context, installID int64) ([]
if err != nil {
return nil, sql.Error(err)
}
var providers []*VCSProvider
for _, r := range rows {
providers := make([]*VCSProvider, len(rows))
for i, r := range rows {
provider, err := db.toProvider(ctx, pgrow(r))
if err != nil {
return nil, err
}
providers = append(providers, provider)
providers[i] = provider
}
return providers, nil
}
Expand Down
20 changes: 9 additions & 11 deletions internal/workspace/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -251,15 +251,14 @@ func (db *pgdb) list(ctx context.Context, opts ListOptions) (*resource.Page[*Wor
return nil, err
}

var items []*Workspace
for _, r := range rows {
items := make([]*Workspace, len(rows))
for i, r := range rows {
ws, err := pgresult(r).toWorkspace()
if err != nil {
return nil, err
}
items = append(items, ws)
items[i] = ws
}

return resource.NewPage(items, opts.PageOptions, internal.Int64(count.Int)), nil
}

Expand All @@ -270,15 +269,14 @@ func (db *pgdb) listByConnection(ctx context.Context, vcsProviderID, repoPath st
return nil, err
}

var items []*Workspace
for _, r := range rows {
items := make([]*Workspace, len(rows))
for i, r := range rows {
ws, err := pgresult(r).toWorkspace()
if err != nil {
return nil, err
}
items = append(items, ws)
items[i] = ws
}

return items, nil
}

Expand All @@ -305,13 +303,13 @@ func (db *pgdb) listByUsername(ctx context.Context, username string, organizatio
return nil, err
}

var items []*Workspace
for _, r := range rows {
items := make([]*Workspace, len(rows))
for i, r := range rows {
ws, err := pgresult(r).toWorkspace()
if err != nil {
return nil, err
}
items = append(items, ws)
items[i] = ws
}

return resource.NewPage(items, opts, internal.Int64(count.Int)), nil
Expand Down
10 changes: 5 additions & 5 deletions internal/workspace/tag.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ func (s TagSpec) Valid() error {

func (specs TagSpecs) LogValue() slog.Value {
var (
ids []string
names []string
ids = make([]string, len(specs))
names = make([]string, len(specs))
)
for _, s := range specs {
ids = append(ids, s.ID)
names = append(names, s.Name)
for i, s := range specs {
ids[i] = s.ID
names[i] = s.Name
}
return slog.GroupValue(
slog.Any("ids", ids),
Expand Down
14 changes: 6 additions & 8 deletions internal/workspace/tag_db.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,10 @@ func (db *pgdb) listTags(ctx context.Context, organization string, opts ListTags
return nil, sql.Error(err)
}

var items []*Tag
for _, r := range rows {
items = append(items, tagresult(r).toTag())
items := make([]*Tag, len(rows))
for i, r := range rows {
items[i] = tagresult(r).toTag()
}

return resource.NewPage(items, opts.PageOptions, internal.Int64(count.Int)), nil
}

Expand Down Expand Up @@ -140,10 +139,9 @@ func (db *pgdb) listWorkspaceTags(ctx context.Context, workspaceID string, opts
return nil, sql.Error(err)
}

var items []*Tag
for _, r := range rows {
items = append(items, tagresult(r).toTag())
items := make([]*Tag, len(rows))
for i, r := range rows {
items[i] = tagresult(r).toTag()
}

return resource.NewPage(items, opts.PageOptions, internal.Int64(count.Int)), nil
}
Loading

0 comments on commit ccc8b6e

Please sign in to comment.