Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

further performance improvements #84

Merged
merged 69 commits into from
Nov 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
196eaf4
Cleanup small int init + fix decimal_debug bugs
anzdaddy Nov 18, 2024
a15083c
forgot to git add some stuff
anzdaddy Nov 18, 2024
84d1189
replace hardcoded map with loop-constructed map
anzdaddy Nov 18, 2024
fca4f17
replace testify with custom assertions
anzdaddy Nov 18, 2024
835b1b6
wip
anzdaddy Nov 19, 2024
7c236e2
wip
anzdaddy Nov 19, 2024
c7331c2
wip
anzdaddy Nov 20, 2024
d9efce4
wip
anzdaddy Nov 20, 2024
9eeb39b
wip
anzdaddy Nov 20, 2024
c5dd442
wip
anzdaddy Nov 20, 2024
baa2c86
wip
anzdaddy Nov 20, 2024
fa941a7
wip
anzdaddy Nov 20, 2024
94d66e0
wip
anzdaddy Nov 20, 2024
9d46d2b
wip
anzdaddy Nov 20, 2024
7922013
wip
anzdaddy Nov 20, 2024
d122ba7
wip
anzdaddy Nov 20, 2024
64803e9
wip
anzdaddy Nov 20, 2024
f16eb5d
wip
anzdaddy Nov 20, 2024
66b79d0
wip
anzdaddy Nov 20, 2024
1d5ea10
wip
anzdaddy Nov 20, 2024
109d961
wip
anzdaddy Nov 20, 2024
67d74ec
wip
anzdaddy Nov 20, 2024
19449f3
wip
anzdaddy Nov 20, 2024
e91481d
wip
anzdaddy Nov 20, 2024
3b99147
wip
anzdaddy Nov 20, 2024
3d5a51b
wip
anzdaddy Nov 20, 2024
9e50700
wip
anzdaddy Nov 20, 2024
76caf92
wip
anzdaddy Nov 20, 2024
57273da
wip
anzdaddy Nov 20, 2024
8ed0278
wip
anzdaddy Nov 20, 2024
b85187b
wip
anzdaddy Nov 20, 2024
ba78e19
wip
anzdaddy Nov 20, 2024
9ac4ef7
wip
anzdaddy Nov 20, 2024
09e695a
wip
anzdaddy Nov 20, 2024
b44a300
wip
anzdaddy Nov 20, 2024
960085a
wip
anzdaddy Nov 20, 2024
2a5280f
wip
anzdaddy Nov 21, 2024
7a4ba35
Merge branch 'master' into cleanup2
anzdaddy Nov 22, 2024
c75f466
wip
anzdaddy Nov 23, 2024
5a64b11
wip
anzdaddy Nov 23, 2024
a331c51
wip
anzdaddy Nov 23, 2024
68eb782
wip
anzdaddy Nov 23, 2024
d7c25ce
wip
anzdaddy Nov 23, 2024
2db1716
wip
anzdaddy Nov 23, 2024
7492931
wip
anzdaddy Nov 23, 2024
209044e
wip
anzdaddy Nov 23, 2024
9d917f4
wip
anzdaddy Nov 23, 2024
f21e3ca
wip
anzdaddy Nov 23, 2024
ac115ee
wip
anzdaddy Nov 23, 2024
2c83d4e
wip
anzdaddy Nov 23, 2024
586da36
wip
anzdaddy Nov 23, 2024
f7a787c
wip
anzdaddy Nov 23, 2024
be008d9
wip
anzdaddy Nov 23, 2024
a310446
wip
anzdaddy Nov 23, 2024
6b1ff61
wip
anzdaddy Nov 23, 2024
be5e0a3
wip
anzdaddy Nov 23, 2024
f563037
wip
anzdaddy Nov 23, 2024
ed0381d
wip
anzdaddy Nov 23, 2024
40eb1da
wip
anzdaddy Nov 23, 2024
7ff4cd8
wip
anzdaddy Nov 23, 2024
6d3d9b0
wip
anzdaddy Nov 23, 2024
05f3308
wip
anzdaddy Nov 23, 2024
1d49b20
wip
anzdaddy Nov 23, 2024
cbabda2
wip
anzdaddy Nov 23, 2024
5ea1c1b
wip
anzdaddy Nov 23, 2024
e2d9a4d
wip
anzdaddy Nov 26, 2024
823fe58
wip
anzdaddy Nov 26, 2024
d1e8d17
wip
anzdaddy Nov 26, 2024
ddba880
wip
anzdaddy Nov 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ jobs:
fi

- name: Test Basic
run: go test -v -race ./...
run: make ci
env:
GOTESTFLAGS: -race

- name: Test 32 bit system
run: GOARCH=386 go test ./...
48 changes: 36 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
.PHONY: all
all: test-all build-linux lint

.PHONY: ci
ci: test-all no-allocs

.PHONY: test-all
test-all: test test-debug test-32
test-all: test test-32

.PHONY: test
test:
go test $(GOTESTFLAGS)

.PHONY: test-debug
test-debug:
go test $(GOTESTFLAGS) -tags=decimal_debug

.PHONY: test-32
test-32:
$(DOCKERRUN) -e GOARCH=arm golang:1.23.0 go test $(GOTESTFLAGS)
if [ "$(shell go env GOOS)" = "linux" ]; then \
GOARCH=386 go test $(subst -race,,$(GOTESTFLAGS)); \
else \
$(DOCKERRUN) -e GOARCH=arm golang:1.23.0 go test $(GOTESTFLAGS); \
fi

.PHONY: build-linux
build-linux:
Expand Down Expand Up @@ -46,19 +49,17 @@ DOCKERRUN = docker run --rm \
-v `go env GOCACHE`:/root/.cache/go-build \
-v `go env GOMODCACHE`:/go/pkg/mod


# Dependency on build-linux primes Go caches.
.PHONY: lint
lint: build-linux
$(DOCKERRUN) golangci/golangci-lint:v1.60.1-alpine golangci-lint run

.PHONY: profile
profile: cpu.prof
%.pprof: %.prof
go tool pprof -http=:8080 $<

.INTERMEDIATE: cpu.prof
cpu.prof:
go test -cpuprofile $@ -count=10 $(GOTESTFLAGS)
.INTERMEDIATE: %.prof
%.prof: $(wildcard *.go)
go test -$*profile $@ -count=10 $(GOPROFILEFLAGS)

.PHONY: bench
bench: bench.txt
Expand All @@ -72,4 +73,27 @@ bench.stat: bench.txt
benchstat bench.old $< > $@ || (rm -f $@; false)

bench.txt: test
go test -run=^$$ -bench=. -benchmem -count=10 $(GOTESTFLAGS) > $@ || (rm -f $@; false)
go test -run=^$$ -bench=. -benchmem $(GOBENCHFLAGS) | tee $@ || (rm -f $@; false)

NOALLOC = \
BenchmarkIODecimal64String2 \
BenchmarkIODecimal64Append \
BenchmarkDecimal64Abs \
BenchmarkDecimal64Add \
BenchmarkDecimal64Cmp \
BenchmarkDecimal64Mul \
BenchmarkFloat64Mul \
BenchmarkDecimal64Quo \
BenchmarkDecimal64Sqrt \
BenchmarkDecimal64Sub

no-allocs:
allocs=$$( \
go test -run=^$$ -bench="^($$(echo $(NOALLOC) | sed 's/ /|/g'))$$" -benchmem $(GOBENCHFLAGS) | \
awk '/^Benchmark/ {if ($$7 != "0") print}' \
); \
if [ -n "$$allocs" ]; then \
echo "** alloc regression **"; \
echo "$$allocs"; \
false; \
fi
Loading