Mercurial > gemma
changeset 4652:f5492fda097c stree-experiment
Use gzip best speed instead of lz4.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 14 Oct 2019 12:25:32 +0200 |
parents | f5fce22184da |
children | 8efc6b3289f3 |
files | go.mod go.sum pkg/octree/strtree.go pkg/octree/tin.go |
diffstat | 4 files changed, 25 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/go.mod Mon Oct 14 01:28:18 2019 +0200 +++ b/go.mod Mon Oct 14 12:25:32 2019 +0200 @@ -6,6 +6,7 @@ github.com/cockroachdb/apd v1.1.0 // indirect github.com/etcd-io/bbolt v1.3.3 github.com/fogleman/contourmap v0.0.0-20190814184649-9f61d36c4199 + github.com/frankban/quicktest v1.5.0 // indirect github.com/gofrs/uuid v3.2.0+incompatible // indirect github.com/golang/snappy v0.0.1 github.com/gorilla/mux v1.7.3
--- a/go.sum Mon Oct 14 01:28:18 2019 +0200 +++ b/go.sum Mon Oct 14 12:25:32 2019 +0200 @@ -29,6 +29,8 @@ github.com/fogleman/contourmap v0.0.0-20190814184649-9f61d36c4199 h1:kufr0u0RIG5ACpjFsPRbbuHa0FhMWsS3tnSFZ2hf07s= github.com/fogleman/contourmap v0.0.0-20190814184649-9f61d36c4199/go.mod h1:mqaaaP4j7nTF8T/hx5OCljA7BYWHmrH2uh+Q023OchE= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/frankban/quicktest v1.5.0 h1:Tb4jWdSpdjKzTUicPnY61PZxKbDoGa7ABbrReT3gQVY= +github.com/frankban/quicktest v1.5.0/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -50,6 +52,8 @@ github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
--- a/pkg/octree/strtree.go Mon Oct 14 01:28:18 2019 +0200 +++ b/pkg/octree/strtree.go Mon Oct 14 12:25:32 2019 +0200 @@ -15,13 +15,12 @@ import ( "bytes" + "compress/gzip" "encoding/binary" "io" "log" "math" "sort" - - "github.com/pierrec/lz4" ) const STRTreeDefaultEntries = 8 @@ -219,7 +218,10 @@ func (s *STRTree) Bytes() ([]byte, error) { var buf bytes.Buffer - w := lz4.NewWriter(&buf) + w, err := gzip.NewWriterLevel(&buf, gzip.BestSpeed) + if err != nil { + return nil, err + } if err := s.tin.serialize(w); err != nil { return nil, err @@ -237,7 +239,7 @@ return nil, err } - if err := w.Flush(); err != nil { + if err := w.Close(); err != nil { return nil, err }
--- a/pkg/octree/tin.go Mon Oct 14 01:28:18 2019 +0200 +++ b/pkg/octree/tin.go Mon Oct 14 12:25:32 2019 +0200 @@ -224,10 +224,21 @@ return err } + var err error + vwrite := func(v float64) { + if err == nil { + err = binary.Write(w, binary.LittleEndian, math.Float64bits(v)) + } + } + for _, v := range t.Vertices { - if err := v.Write(w); err != nil { - return err - } + vwrite(v.X) + vwrite(v.Y) + vwrite(v.Z) + } + + if err != nil { + return err } log.Printf("info: vertices %d (%d)\n", len(t.Vertices), len(t.Vertices)*3*8)