• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / h3-go
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: bench/typed-sinks
DEFAULT BRANCH: master
Repo Added 18 Sep 2018 05:56PM UTC
Files 19
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH bench/typed-sinks
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • bench-ranges
  • bench/typed-sinks
  • chore-upgrade-h3-core
  • feat-add-error-codes
  • feat/latlng-to-cells-batch
  • gilley/adopt-modules
  • gilley/test-str
  • gilley/travis
  • joegilley-patch-2
  • joegilley-patch-3
  • justinhwang/4.3
  • justinhwang/4.5
  • justinhwang/bindings
  • justinhwang/bit
  • justinhwang/bump
  • justinhwang/changelog
  • justinhwang/coverage
  • justinhwang/doc
  • justinhwang/docs
  • justinhwang/edge
  • justinhwang/err
  • justinhwang/forward-gnomonic-opt
  • justinhwang/from_string
  • justinhwang/generics
  • justinhwang/github
  • justinhwang/greatcircle
  • justinhwang/griddiskunsafe
  • justinhwang/gridring
  • justinhwang/indexdigit
  • justinhwang/intpow
  • justinhwang/latlngcell
  • justinhwang/latlngstr
  • justinhwang/numverts
  • justinhwang/paritytest-benchmarks
  • justinhwang/purego-phase-a
  • justinhwang/purego-phase-b
  • justinhwang/purego-phase-c
  • justinhwang/purego-phase-d
  • justinhwang/purego-phase-e
  • justinhwang/purego-phase-f
  • justinhwang/purego-phase-g
  • justinhwang/readme
  • justinhwang/remove-h3core
  • justinhwang/stack
  • justinhwang/tostring
  • justinhwang/tovec3-projection-opt
  • justinhwang/unsafe
  • justinhwang/vertex
  • maintainer-banner
  • master
  • perf/cell-area-boundary
  • perf/grid-distance
  • perf/griddisk-safe-hashset
  • perf/multipolygon-flat-index
  • perf/polygon-to-cells-flat-sets
  • pin-github-actions-sha
  • refs/tags/v3.7.0
  • refs/tags/v3.7.1
  • refs/tags/v4.0.0
  • refs/tags/v4.0.1
  • refs/tags/v4.1.0
  • refs/tags/v4.1.1
  • refs/tags/v4.1.2
  • refs/tags/v4.2.0
  • refs/tags/v4.2.1
  • refs/tags/v4.2.2
  • refs/tags/v4.2.3
  • refs/tags/v4.2.4
  • refs/tags/v4.3.0
  • refs/tags/v4.4.0
  • refs/tags/v4.4.1
  • refs/tags/v4.5.0
  • update-h3
  • upgrade-github-actions-node24
  • v3.0.0
  • v3.0.1
  • v3.0.2
  • v4
  • vscode
  • zcoleman/exposing-polygontocells-containment
  • zcoleman/issue-78

29 Sep 2026 12:58AM UTC coverage: 100.0%. Remained the same
36505723603

Pull #144

github

justinhwang
bench: replace the interface sink with a typed noinline sink in paritytest

The cross-implementation benchmarks kept results alive by assigning them to a
package-level `any`. That boxes every Cell, float64, LatLng and int64 result on
its way into the interface, which adds a small heap allocation and several
nanoseconds to every row and reports 1 alloc/op for functions that do not
allocate. On the smallest operations the box was a third or more of the
measured time, and it masked allocation changes in the library.

Replace the sink with a generic, noinline function. The result is materialized
and passed in its own type, so the call cannot be eliminated and nothing is
boxed. No benchmark body changes beyond the sink call.

benchstat, Go implementation, old harness vs new, five interleaved full-suite
rounds on an Apple M3 Max (five samples is below benchstat's threshold for a
confidence interval, so only the p-values are shown). Selected rows; the PR
carries the full tables for both implementations:

                                       old       new   vs base
NewLatLng-16                       11.250n    1.959n   -82.59% (p=0.008 n=5)
CellToLatLng-16                     86.39n    70.77n   -18.08% (p=0.008 n=5)
CellToString-16                     32.96n    20.18n   -38.77% (p=0.008 n=5)
CellMarshalText-16                  52.26n    19.79n   -62.13% (p=0.008 n=5)
CellFromString-16                   33.62n    26.05n   -22.52% (p=0.008 n=5)
Resolution-16                       2.058n    1.964n   -4.57% (p=0.008 n=5)
NumCells-16                         8.674n    1.978n   -77.20% (p=0.008 n=5)
Parent-16                          13.650n    5.874n   -56.97% (p=0.008 n=5)
ImmediateParent-16                 11.470n    3.919n   -65.83% (p=0.008 n=5)
CenterChild-16                      9.530n    2.226n   -76.64% (p=0.008 n=5)
ChildPosToCell-16                  15.850n    8.004n   -49.50% (p=0.008 n=5)
CellAreaRads2-16                    500.2n    488.8n   -2.28% (... (continued)
Pull Request #144: bench: replace the interface sink with a typed noinline sink in paritytest

4309 of 4309 relevant lines covered (100.0%)

2903949.97 hits per line

Relevant lines Covered
Build:
Build:
4309 RELEVANT LINES 4309 COVERED LINES
2903949.97 HITS PER LINE
Source Files on master
  • Tree
  • List 19
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
36505723603 bench/typed-sinks bench: replace the interface sink with a typed noinline sink in paritytest The cross-implementation benchmarks kept results alive by assigning them to a package-level `any`. That boxes every Cell, float64, LatLng and int64 result on its way into ... Pull #144 29 Sep 2026 01:01AM UTC justinhwang github
100.0
36499045753 master perf: reuse per-vertex trig in cell area and hoist boundary tables in x/h3go (#143) Profile CellArea and EdgeLength on the pure-Go path. The premise that they allocate no longer holds: Boundary is inlined into both and the compiler keeps the boun... push 28 Sep 2026 11:39PM UTC web-flow github
100.0
36497520575 perf/cell-area-boundary perf: reuse per-vertex trig in cell area and hoist boundary tables in x/h3go Profile CellArea and EdgeLength on the pure-Go path. The premise that they allocate no longer holds: Boundary is inlined into both and the compiler keeps the boundary sl... Pull #143 28 Sep 2026 11:23PM UTC justinhwang github
100.0
36494950939 master perf: value-receiver coordIJK ops and deferred normalize in x/h3go (#142) Profile GridDistance and GridPath on the pure-Go path. The time was not in the algorithm but in how the coordIJK helpers compiled: normalize, upAp7, downAp7 and friends wer... push 28 Sep 2026 10:55PM UTC web-flow github
100.0
36494016491 perf/grid-distance perf: value-receiver coordIJK ops and deferred normalize in x/h3go Profile GridDistance and GridPath on the pure-Go path. The time was not in the algorithm but in how the coordIJK helpers compiled: normalize, upAp7, downAp7 and friends were point... Pull #142 28 Sep 2026 10:45PM UTC justinhwang github
100.0
36480078553 master perf: generic flat hash table and buffer reuse for CellsToMultiPolygon in x/h3go (#141) Generalize the open-addressing cell set from PR 140 into flatTable[K Index, V], a linear-probing table keyed by any H3 index type with an inline value. cellSe... push 28 Sep 2026 08:35PM UTC web-flow github
100.0
36477088470 perf/multipolygon-flat-index perf: generic flat hash table and buffer reuse for CellsToMultiPolygon in x/h3go Generalize the open-addressing cell set from PR 140 into flatTable[K Index, V], a linear-probing table keyed by any H3 index type with an inline value. cellSet becom... Pull #141 28 Sep 2026 08:11PM UTC justinhwang github
100.0
36476861668 perf/multipolygon-flat-index perf: generic flat hash table and buffer reuse for CellsToMultiPolygon in x/h3go Generalize the open-addressing cell set from PR 140 into flatTable[K Index, V], a linear-probing table keyed by any H3 index type with an inline value. cellSet becom... Pull #141 28 Sep 2026 08:09PM UTC justinhwang github
100.0
36476859224 perf/multipolygon-flat-index perf: generic flat hash table and buffer reuse for CellsToMultiPolygon in x/h3go Generalize the open-addressing cell set from PR 140 into flatTable[K Index, V], a linear-probing table keyed by any H3 index type with an inline value. cellSet becom... push 28 Sep 2026 08:09PM UTC justinhwang github
100.0
36474828248 perf/multipolygon-flat-index perf: generic flat hash table and buffer reuse for CellsToMultiPolygon in x/h3go Generalize the open-addressing cell set from PR 140 into flatTable[K Index, V], a linear-probing table keyed by any H3 index type with an inline value. cellSet becom... Pull #141 28 Sep 2026 07:51PM UTC justinhwang github
100.0
See All Builds (412)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc