Skip to content

feat: support bounded compile cache via Caffeine - #436

Open
xuechongfei wants to merge 1 commit into
alibaba:mainfrom
xuechongfei:main
Open

feat: support bounded compile cache via Caffeine#436
xuechongfei wants to merge 1 commit into
alibaba:mainfrom
xuechongfei:main

Conversation

@xuechongfei

Copy link
Copy Markdown

Replace the unbounded ConcurrentHashMap-based compile cache in Express4Runner with a Caffeine cache, and expose two new InitOptions to configure it:

  • compileCacheMaxSize: cap the number of cached compiled scripts; entries are evicted by Caffeine's Window TinyLFU policy when exceeded.
  • compileCacheExpireAfterAccess: drop entries that have not been read for the given Duration.

Both options default to disabled, preserving the previous unbounded behavior. Add Express4Runner#compileCacheSize for monitoring, update clearCompileCache to use Caffeine's invalidateAll, and document the new options in both the Chinese and English READMEs with runnable test snippets.

Replace the unbounded ConcurrentHashMap-based compile cache in Express4Runner
with a Caffeine cache, and expose two new InitOptions to configure it:

- compileCacheMaxSize: cap the number of cached compiled scripts; entries are
  evicted by Caffeine's Window TinyLFU policy when exceeded.
- compileCacheExpireAfterAccess: drop entries that have not been read for the
  given Duration.

Both options default to disabled, preserving the previous unbounded behavior.
Add Express4Runner#compileCacheSize for monitoring, update clearCompileCache
to use Caffeine's invalidateAll, and document the new options in both the
Chinese and English READMEs with runnable test snippets.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@CLAassistant

CLAassistant commented Apr 30, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@DQinYuan

Copy link
Copy Markdown
Collaborator

QLExpress原则上零依赖,不要在pom中引入额外依赖,可以参考Caffine在QLExpress重新实现一个类似的缓存

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants