You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: enhance encapsulation and strengthen thread-safety architecture
Replace writeSafely lambdas with enterWrite/exitWrite manual locks
Strengthen internal state encapsulation by minimizing @PublishedApi usage
Open nextRowNum and nextColNum as read-only properties for DSL usability
Add concurrency stability tests and verify Fail-Fast logic
Introduce skip features for improved DSL flexibility
Copy file name to clipboardExpand all lines: README.ko.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ KExcel DSL은 이 문제를 해결하기 위해 세 가지 원칙을 따릅니
14
14
15
15
1.**일관된 개발 경험 (Unified Developer Experience)**: 엔진의 저수준 API에 종속되지 않고, 비즈니스 로직에만 집중할 수 있는 선언적 DSL을 제공합니다. 동일한 코드가 어떤 환경에서도 일관되게 작동하는 것을 보장합니다.
16
16
17
-
2.**타협 없는 성능 (Performance without Compromise)**: 추상화 레이어가 주는 편리함을 누리면서도, 스트리밍 처리와 인라인 최적화를 통해 네이티브 엔진과 대등한 수준의 처리 속도와 메모리 안정성을 유지합니다.
17
+
2.**타협 없는 성능 (Performance without Compromise)**: 추상화 레이어가 주는 편리함을 누리면서도, 스트리밍 처리와 수동 락 제어를 통한 Zero-allocation 최적화로 네이티브 엔진과 대등한 수준의 처리 속도와 메모리 안정성을 유지합니다.
18
18
19
19
3.**실용적인 추상화 (Pragmatic Abstraction)**: 개발자를 추상화에 가두지 않습니다. DSL의 편의성을 기본으로 하되, 필요할 때는 언제든 네이티브 API에 직접 접근하여 엔진 고유의 기능을 제약 없이 활용할 수 있습니다.
20
20
@@ -55,7 +55,7 @@ KExcel DSL은 비즈니스 로직을 수정하지 않고도 상황에 맞는 최
-**강점**: ~150KB의 가벼운 의존성. 1,000,000행 처리 시 POI SXSSF 대비 약 25~30% 높은 처리량을 보여줍니다. Lambda, Cloud Run 등 서버리스 환경에 적합합니다.
58
+
-**강점**: ~150KB의 가벼운 의존성. 벤치마크 결과 KExcel DSL은 네이티브 FastExcel 대비 단 **3.1%의 오버헤드**만 발생시키며, 1,000,000행 처리 시에도 압도적인 성능을 유지합니다. Lambda, Cloud Run 등 서버리스 환경에 적합합니다.
59
59
-**고려 사항**: 수식 평가, 차트, 피벗 테이블, 기존 파일 수정 등은 지원하지 않습니다.
60
60
61
61
**왜 KExcel인가?** KExcel을 사용하면 동일한 DSL 코드로 풍부한 기능이 필요한 보고서는 POI를, 대용량 처리가 중요한 파일은 FastExcel을 선택하여 생성할 수 있습니다. 비즈니스 로직을 중복해서 구현할 필요 없이, 요구사항에 따라 최적의 엔진을 유연하게 활용하세요. 상세 수치는 [벤치마크 리포트](docs/BENCHMARK.ko.md)에서 확인하세요.
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ KExcel DSL follows three core principles to solve this:
18
18
19
19
1.**Unified Developer Experience**: Focus on business logic through a declarative DSL that remains consistent regardless of the underlying engine. The same code works seamlessly across any supported engine.
20
20
21
-
2.**Performance without Compromise**: Enjoy the convenience of high-level abstraction while maintaining near-native execution speeds and constant memory usage through optimized streaming and function inlining.
21
+
2.**Performance without Compromise**: Enjoy the convenience of high-level abstraction while maintaining near-native execution speeds and zero-allocation performance through optimized streaming and manual lock control.
22
22
23
23
3.**Pragmatic Abstraction**: We don't trap you in our abstraction. While the DSL covers most common use cases, you always have direct access to the native engine via extension points to leverage its full power.
24
24
@@ -59,7 +59,7 @@ KExcel DSL gives you the freedom to choose the engine that best fits each use ca
-**Best for**: Large datasets (millions of rows) and high-concurrency environments where processing speed and memory are prioritized.
62
-
-**Strength**: Small footprint at ~150KB. Benchmark shows approximately 25-30% higher throughput compared to POI SXSSF for 1,000,000 rows. Ideal for Lambda, Cloud Run, and other serverless environments.
62
+
-**Strength**: Small footprint at ~150KB. Benchmark shows that KExcel DSL adds only **3.1% overhead** compared to native FastExcel. Ideal for Lambda, Cloud Run, and other serverless environments.
63
63
-**Trade-off**: Does not support formula evaluation, charts, pivot tables, or modifying existing files.
64
64
65
65
**Why choose KExcel?** KExcel allows you to use the same DSL to generate feature-rich reports with POI and high-performance large files with FastExcel. You maintain a single, consistent codebase while choosing the best-fit engine for each specific requirement. Detailed results can be found in the [Benchmark Report](docs/BENCHMARK.md).
> FastExcel shows a higher relative overhead because the engine itself is extremely fast, making the fixed cost of DSL logic (like lock checks) more visible. In POI, the engine logic is heavier, which masks the DSL abstraction cost.
@@ -65,8 +65,8 @@ Comparison of metrics before and after applying `inline` functions and removing
65
65
66
66
| Metric | Before Optimization | After Optimization |**Improvement**|
0 commit comments