Skip to content

Conversation

@riii111
Copy link

@riii111 riii111 commented Nov 29, 2025

Summary

  • Reduce default heap from 2GB to 1GB
  • Expand decompiled class LRU cache (5→50) to reduce repeated decompilation
  • Add in-memory cache layer to CachedClassPathResolver to avoid repeated DB transactions
  • Enable SQLite WAL mode and NORMAL synchronous for better I/O performance

Changes

File Change
server/build.gradle.kts Heap 2GB→1GB
ClassContentProvider.kt LRU cache 5→50
CachedClassPathResolver.kt In-memory cache layer
DatabaseService.kt SQLite WAL mode + NORMAL sync

Expected Impact

~30-45% memory reduction while maintaining LSP responsiveness.

- Add val/var to definitionPattern regex for definition lookup
- Allow build/generated-src directory by excluding specific build outputs
  instead of entire build directory

This fixes go-to-definition failing for generated code like jOOQ Tables.kt
- Set initial heap to 256MB, max heap to 2GB
- Use G1GC for better memory management
- Enable string deduplication to reduce memory footprint

This prevents the language server from consuming 3GB+ of memory
- Reduce default heap from 2GB to 1GB
- Expand decompiled class LRU cache (5→50) to reduce repeated decompilation
- Add in-memory cache layer to CachedClassPathResolver to avoid repeated DB transactions
- Enable SQLite WAL mode and NORMAL synchronous for better I/O performance
@github-actions github-actions bot added dependency resolution Related to the project dependency/standard library resolver build Related to the language server's own build (including Gradle updates etc.) labels Nov 29, 2025
@riii111 riii111 closed this Nov 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Related to the language server's own build (including Gradle updates etc.) dependency resolution Related to the project dependency/standard library resolver

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant