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

ben-manes / caffeine / #4743
100%

Build:
DEFAULT BRANCH: master
Ran 16 Feb 2025 04:50AM UTC
Jobs 1
Files 78
Run time 1min
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

16 Feb 2025 03:59AM UTC coverage: 99.07% (+0.01%) from 99.057%
#4743

push

github

ben-manes
modernize the simulator to use jdk21 (unrelated to the core library)

As dependencies are moving on from jdk11, it makes sense for the
analysis tools to upgrade as well. This was already executing as 21
to support those dependencies and now simply requires it at the
language level. The user-facing library and jmh benchmarks remain jdk11
compatible.

A profile of the execution showed excessive garbage, which is now
reduced to improve runtimes.
- A direct mapped cache of boxed Long keys are used to reduce the
allocations by caching libraries. The research policies use primitive
based data structures, but user-facing libraries are not as fortunate.
- Using cache listeners to track eviction counts can require the
libraries allocate, e.g. copy the entry. This is safe enough to trust
their stats because its usually the hit rate that is accidentally
miscalculated and we verify that matches. The eviction count is easily
derrived (miss count - size) so just a sanity check.
* This particular sped up Ehcache from an 18m run to 17m, because if
any event type is registered against then it emits and does work for
the unregistered event types too. This may seem like low-hanging fruit
for them to fix, but every other cache runs in seconds (7s for
Caffeine) so it is already unusable. Their response was that Ehcache v3
is not intended to be used in scenarios where LRU eviction might occur,
only as a safety net, so any eviction is considered user error.

Some nice simplifications due to language improvements:
- Replaced AutoValue with Records
- More concise instanceof casting
- More concise switch expressions

1 of 1 new or added line in 1 file covered. (100.0%)

1 existing line in 1 file now uncovered.

7672 of 7744 relevant lines covered (99.07%)

0.99 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
99.4
-0.2% caffeine/src/main/java/com/github/benmanes/caffeine/cache/UnboundedLocalCache.java
Jobs
ID Job ID Ran Files Coverage
1 #4743.1 16 Feb 2025 04:50AM UTC 78
99.07
Source Files on build #4743
  • Tree
  • List 78
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #4743
  • 868924a6 on github
  • Prev Build on v3.dev
  • Next Build on master
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc