MM-29981 - optimize markdown.Inspect (#16188)
* MM-29981 - optimize markdown.Inspect - Cache regexp.MustCompile - Reuse slice in MergeInlineText - Remove pointer to slice in closeBlocks - Pre-allocate slice in ParseLines - Some more small cleanups ``` name old time/op new time/op delta Inspect-8 10.5µs ± 3% 6.6µs ± 1% -37.59% (p=0.000 n=10+7) name old alloc/op new alloc/op delta Inspect-8 6.66kB ± 0% 3.22kB ± 0% -51.62% (p=0.000 n=10+9) name old allocs/op new allocs/op delta Inspect-8 117 ± 0% 76 ± 0% -35.04% (p=0.000 n=10+10) ``` * fix lint * remove ignore Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
95221d9ace
Коммит
eced0cdb72
@@ -3,13 +3,16 @@
|
||||
|
||||
package markdown
|
||||
|
||||
import "strings"
|
||||
|
||||
type Line struct {
|
||||
Range
|
||||
}
|
||||
|
||||
func ParseLines(markdown string) (lines []Line) {
|
||||
func ParseLines(markdown string) []Line {
|
||||
lineStartPosition := 0
|
||||
isAfterCarriageReturn := false
|
||||
lines := make([]Line, 0, strings.Count(markdown, "\n"))
|
||||
for position, r := range markdown {
|
||||
if r == '\n' {
|
||||
lines = append(lines, Line{Range{lineStartPosition, position + 1}})
|
||||
@@ -23,5 +26,5 @@ func ParseLines(markdown string) (lines []Line) {
|
||||
if lineStartPosition < len(markdown) {
|
||||
lines = append(lines, Line{Range{lineStartPosition, len(markdown)}})
|
||||
}
|
||||
return
|
||||
return lines
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user