delve/pkg/proc
Alessandro Arzilli b9d0ddd82c
proc: only format registers value when it's necessary (#1860)
A significant amount of time is spent generating the string
representation for the proc.Registers object of each thread, since this
field is rarely used (only when the Registers API is called) it should
be generated on demand.

Also by changing the internal representation of proc.Register to be
closer to that of op.DwarfRegister it will help us implement #1838
(when Delve will need to be able to display the registers of an
internal frame, which we currently represent using op.DwarfRegister
objects).

Benchmark before:

BenchmarkConditionalBreakpoints-4   	       1	22292554301 ns/op

Benchmark after:

BenchmarkConditionalBreakpoints-4   	       1	17326345671 ns/op

Reduces conditional breakpoint latency from 2.2ms to 1.7ms.

Updates #1549, #1838
2020-02-12 13:31:48 -08:00
..
core proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
fbsdutil proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
gdbserial proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
linutil proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
native proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
test tests: disable function call injection tests on macOS on Travis-CI 2020-01-02 09:20:12 -08:00
winutil proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
amd64_arch.go proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
amd64_disasm.go proc: build disassemblers unconditionally 2020-01-02 09:29:01 -08:00
arch.go proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
arm64_arch.go proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
arm64_disasm.go proc: build disassemblers unconditionally 2020-01-02 09:29:01 -08:00
bininfo.go *: Go 1.14 support branch (#1727) 2020-02-10 17:31:54 -08:00
breakpoints.go proc,debugger: implement logical breakpoints (#1717) 2019-11-01 12:41:06 -07:00
disasm.go proc: build disassemblers unconditionally 2020-01-02 09:29:01 -08:00
doc.go Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
dwarf_expr_test.go pkg/proc: remove meanless code in dwarf_expr_test.go. (#1850) 2020-01-29 16:12:44 +01:00
eval.go proc: support DW_AT_go_package_name (#1757) 2019-11-25 09:10:18 -08:00
fncall.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
goroutine_cache.go pkg/proc: optimize code for supporting different arch in the future. (#1849) 2020-02-10 17:32:50 -08:00
interface.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
mem.go More Function Calls, parts 2 (#1504) 2019-05-30 08:08:37 -07:00
moduledata.go proc: support DW_AT_go_package_name (#1757) 2019-11-25 09:10:18 -08:00
proc_general_test.go proc: change memCache to delay reading 2018-04-23 10:13:21 -07:00
proc_linux_test.go *: Update import name to github.com/go-delve/delve 2019-01-04 19:43:13 +01:00
proc_test.go *: Go 1.14 support branch (#1727) 2020-02-10 17:31:54 -08:00
proc_unexported_test.go proc: allow calls to optimized functions (#1684) 2019-09-25 10:23:02 -07:00
proc_unix_test.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
proc.go *: Go 1.14 support branch (#1727) 2020-02-10 17:31:54 -08:00
registers.go proc: only format registers value when it's necessary (#1860) 2020-02-12 13:31:48 -08:00
scope_test.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
stack.go proc: implement stacktrace of arm64 (#1780) 2020-01-21 09:11:20 -08:00
target.go *: Go 1.14 support branch (#1727) 2020-02-10 17:31:54 -08:00
threads.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
types.go pkg/proc,pkg/dwarf: Introduce loclist package 2019-11-13 18:30:21 +01:00
variable_test.go pkg/proc: Introduce Target and remove CommonProcess (#1834) 2020-01-21 12:41:24 -08:00
variables.go pkg/proc: optimize code for supporting different arch in the future. (#1849) 2020-02-10 17:32:50 -08:00