-
Notifications
You must be signed in to change notification settings - Fork 0
⚡ Bolt: R 데이터 프레임 컬럼명 추출 병목 현상 개선 (O(N) 메모리 낭비 제거) #280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -620,8 +620,8 @@ autoFIPC <- | |
| IPDItemCount <- 0 | ||
|
|
||
| # IPD target item checking | ||
| newFormColNames <- colnames(newformXDataK[colnames(newFormModel@Data$data)]) | ||
| oldFormColNames <- colnames(oldformYDataK[colnames(oldFormModel@Data$data)]) | ||
| newFormColNames <- intersect(colnames(newFormModel@Data$data), colnames(newformXDataK)) | ||
| oldFormColNames <- intersect(colnames(oldFormModel@Data$data), colnames(oldformYDataK)) | ||
|
Comment on lines
+623
to
+624
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📝 Info: intersect refactor is behavior-preserving Both replaced lines swap Was this helpful? React with 👍 or 👎 to provide feedback.
Comment on lines
+623
to
+624
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
📍 Affects 2 files
🤖 Prompt for AI AgentsSource: MCP tools |
||
|
|
||
| # ⚡ Bolt: Vectorized match() to avoid dynamic array growth overhead inside a for loop | ||
| idxNew <- match(newformCommonItemNames, newFormColNames) | ||
|
|
@@ -749,8 +749,8 @@ autoFIPC <- | |
| } | ||
| } | ||
|
|
||
| newFormColNames <- colnames(newformXDataK[colnames(newFormModel@Data$data)]) | ||
| oldFormColNames <- colnames(oldformYDataK[colnames(oldFormModel@Data$data)]) | ||
| newFormColNames <- intersect(colnames(newFormModel@Data$data), colnames(newformXDataK)) | ||
| oldFormColNames <- intersect(colnames(oldFormModel@Data$data), colnames(oldformYDataK)) | ||
|
|
||
| # ⚡ Bolt: Cache parameter indices to avoid O(N) linear search inside loop | ||
| newScaleParmsItemIdxCache <- split(seq_len(nrow(NewScaleParms)), NewScaleParms$item) | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
문서 정책 변경을 알고리즘 변경과 분리하세요.
.jules/bolt.md의 최적화 지침 변경과R/aFIPC.R의 실행 로직 변경이 같은 변경 단위에 있습니다. 문서 정책 또는 운영 지침 변경을 별도 commit 또는 PR로 분리하면 알고리즘 회귀를 독립적으로 검증하고 되돌릴 수 있습니다.As per coding guidelines: Isolate operational fixes (workflow/docs/dependency policy) from algorithmic edits.
🤖 Prompt for AI Agents
Source: Coding guidelines