Ice3man
|
8f313629b8
|
Memory usage optimizations (#2350)
* Replaced strings.Replaced with fasttemplate reducing allocations
Custom template parsing logic was replaced with fasttemplate package for reducing
allocations in the replacer.Replace hotpath leading to allocation reduction which
accounted for 30% of total nuclei allocations.
$ go test -bench=. -benchmem
goos: darwin
goarch: arm64
pkg: github.com/projectdiscovery/nuclei/v2/pkg/protocols/common/replacer
BenchmarkReplacer-8 837232 1422 ns/op 2112 B/op 31 allocs/op
BenchmarkReplacerNew-8 3672765 320.3 ns/op 48 B/op 4 allocs/op
* Fixed tests failing
* Use pre-compiled map of DSL expressions
* Reworked expression parsing logic to reduce memory allocations
$ go test -bench=. -benchmem
goos: darwin
goarch: arm64
pkg: github.com/projectdiscovery/nuclei/v2/pkg/protocols/common/expressions
BenchmarkEvaluate-8 31560 37769 ns/op 31731 B/op 265 allocs/op
BenchmarkEvaluateNew-8 109144 9621 ns/op 6253 B/op 116 allocs/op
|
2022-08-23 13:16:41 +05:30 |
|