 shenleiandClaude Opus 4.7
|
c64460988a
|
feat: 实现大书远距目录跳转与后台补全优化方案
Phase 1: 稳定性优先
- 新增 RDEPUBJumpSession 保护机制,防止远距跳转后翻页串章
- 升级页图接管条件,增加 JumpSession 保护区检查
- 窗口扩展改为基于当前权威窗口方向
Phase 2: 补全优先级重排
- 新增 RDEPUBBackgroundPriorityPolicy 策略配置
- 实现 hot/warm/cold zone 优先级排序
- 添加失败重试机制(指数退避,最多3次)
Phase 3: 分段覆盖与最终收敛
- 新增 RDEPUBBackgroundCoverageStore 分段存储
- 新增 RDEPUBPageMapReconciliationCoordinator 页图接管仲裁
- 实现 LRU 淘汰和内存警告处理
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-15 16:28:11 +08:00 |
|
 shenandshen
|
d20196ee34
|
feat: configurable chapter window & parallel metadata parsing with benchmark
1. Configurable chapter window size (onDemandChapterWindowSize: 3-15)
- Parameterized window radius in RDEPUBChapterRuntimeStore
- Updated RDEPUBChapterWindowCoordinator to use configurable radius
- RDEPUBChapterWindowSnapshot.from() accepts chapter array instead of fixed prev/next
- Even numbers round up to odd (4→5), min 3, max 15
2. Configurable metadata parsing concurrency (metadataParsingConcurrency)
- Default equals CPU core count
- Parallel execution via OperationQueue in paginateMetadataOnly
- Each worker creates independent builder instance
- NSLock protects result aggregation
3. Per-chapter and total wall-clock timing instrumentation
- Separated render vs I/O timing per chapter
- Summary log with wallClockMs, renderTotalMs, writeTotalMs, avgRenderMs
- Timing stored in RDEPUBReaderContext for test access
4. UI automation test infrastructure
- Added --demo-window-size, --demo-concurrency, --demo-clear-cache launch args
- DemoReaderState exposes windowSize, parseMs, parseConcurrency
- ConfigurableWindowTests: 5 test cases for window size 3/5/15
- ConcurrentParsingTests: 4 test cases for concurrency 2/4
- MetadataParseBenchmarkTests: serial vs parallel benchmark
5. Bug fixes
- Fixed page snap-back during background parsing (isUserInteracting check)
- Reduced BookPageMap refresh frequency from 16 to 32 chapters
- Moved waitForReadingInteractionToSettle outside operation loop
6. Design doc: dual-layer PageMap (estimated + precise mixed)
|
2026-06-03 23:38:11 +08:00 |
|