mirror of
https://github.com/rclone/rclone.git
synced 2025-12-10 13:23:21 +00:00
refactor: use strings.Builder to improve performance
This commit is contained in:
@@ -178,7 +178,7 @@ func constructProviders(options fs.Options, providerMap map[string]*Provider) st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var providerList string
|
var providerList strings.Builder
|
||||||
|
|
||||||
for _, p := range providers {
|
for _, p := range providers {
|
||||||
for i := range options {
|
for i := range options {
|
||||||
@@ -189,7 +189,7 @@ func constructProviders(options fs.Options, providerMap map[string]*Provider) st
|
|||||||
Value: p.Name,
|
Value: p.Name,
|
||||||
Help: p.Description,
|
Help: p.Description,
|
||||||
})
|
})
|
||||||
providerList += p.Name + ", "
|
providerList.WriteString(p.Name + ", ")
|
||||||
case "region":
|
case "region":
|
||||||
addExample(opt, p, p.Region, defaults.Region)
|
addExample(opt, p, p.Region, defaults.Region)
|
||||||
case "endpoint":
|
case "endpoint":
|
||||||
@@ -232,5 +232,5 @@ func constructProviders(options fs.Options, providerMap map[string]*Provider) st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return strings.TrimSuffix(providerList, ", ")
|
return strings.TrimSuffix(providerList.String(), ", ")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,13 +150,13 @@ func TestAsyncReaderSizes(t *testing.T) {
|
|||||||
|
|
||||||
var texts [31]string
|
var texts [31]string
|
||||||
str := ""
|
str := ""
|
||||||
all := ""
|
var all strings.Builder
|
||||||
for i := range len(texts) - 1 {
|
for i := range len(texts) - 1 {
|
||||||
texts[i] = str + "\n"
|
texts[i] = str + "\n"
|
||||||
all += texts[i]
|
all.WriteString(texts[i])
|
||||||
str += string(rune(i)%26 + 'a')
|
str += string(rune(i)%26 + 'a')
|
||||||
}
|
}
|
||||||
texts[len(texts)-1] = all
|
texts[len(texts)-1] = all.String()
|
||||||
|
|
||||||
for h := range len(texts) {
|
for h := range len(texts) {
|
||||||
text := texts[h]
|
text := texts[h]
|
||||||
@@ -191,13 +191,13 @@ func TestAsyncReaderWriteTo(t *testing.T) {
|
|||||||
|
|
||||||
var texts [31]string
|
var texts [31]string
|
||||||
str := ""
|
str := ""
|
||||||
all := ""
|
var all strings.Builder
|
||||||
for i := range len(texts) - 1 {
|
for i := range len(texts) - 1 {
|
||||||
texts[i] = str + "\n"
|
texts[i] = str + "\n"
|
||||||
all += texts[i]
|
all.WriteString(texts[i])
|
||||||
str += string(rune(i)%26 + 'a')
|
str += string(rune(i)%26 + 'a')
|
||||||
}
|
}
|
||||||
texts[len(texts)-1] = all
|
texts[len(texts)-1] = all.String()
|
||||||
|
|
||||||
for h := range len(texts) {
|
for h := range len(texts) {
|
||||||
text := texts[h]
|
text := texts[h]
|
||||||
|
|||||||
@@ -158,11 +158,11 @@ func (d Duration) readableString(maxNumberOfUnits int) string {
|
|||||||
return "0s"
|
return "0s"
|
||||||
}
|
}
|
||||||
|
|
||||||
readableString := ""
|
var readableString strings.Builder
|
||||||
|
|
||||||
// Check for minus durations.
|
// Check for minus durations.
|
||||||
if d < 0 {
|
if d < 0 {
|
||||||
readableString += "-"
|
readableString.WriteString("-")
|
||||||
}
|
}
|
||||||
|
|
||||||
duration := time.Duration(math.Abs(float64(d)))
|
duration := time.Duration(math.Abs(float64(d)))
|
||||||
@@ -205,14 +205,14 @@ func (d Duration) readableString(maxNumberOfUnits int) string {
|
|||||||
if v == 0 {
|
if v == 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
readableString += strval + u
|
readableString.WriteString(strval + u)
|
||||||
numberOfUnits++
|
numberOfUnits++
|
||||||
if maxNumberOfUnits > 0 && numberOfUnits >= maxNumberOfUnits {
|
if maxNumberOfUnits > 0 && numberOfUnits >= maxNumberOfUnits {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return readableString
|
return readableString.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set a Duration
|
// Set a Duration
|
||||||
|
|||||||
Reference in New Issue
Block a user