Skip to content

⚡ Bolt: 성능 개선 (Schwartzian transform을 이용한 Date.parse 최적화) - #598

Closed
seonghobae wants to merge 3 commits into
developmentalfrom
perf/schwartzian-sort-3454209458070107971
Closed

⚡ Bolt: 성능 개선 (Schwartzian transform을 이용한 Date.parse 최적화)#598
seonghobae wants to merge 3 commits into
developmentalfrom
perf/schwartzian-sort-3454209458070107971

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 7, 2026

Copy link
Copy Markdown

💡 What
Array.prototype.sort() 내에서 Date.parse()를 직접 호출하던 것을 Schwartzian transform (map-sort-map) 패턴으로 변경하여 타임스탬프 파싱 결과를 캐싱했습니다.

🎯 Why
정렬의 비교 함수 내에서 Date.parse()를 실행하면 O(N log N)번의 문자열 파싱이 발생하여 성능 저하의 원인이 될 수 있습니다.

📊 Evidence review
이 변경에는 실제 Argos timeline buyer path의 protected-vs-candidate benchmark, representative/right-cleared workload, warm-up·반복, median/p95, main-thread/CPU, allocation/GC profile이 남아 있지 않았습니다. 기능 테스트 통과와 Date.parse() 호출 횟수 감소만으로 렌더링 지연 개선이나 5–8배 속도 향상을 상용 성능 근거로 인정하지 않습니다.

따라서 production 변경과 branch-local Bolt claim을 protected developmental@2fa92012bcf80acc1f921a4bafea76b3b1424b46 authority로 ordinary descendant e8910b46f81eca37429e743cb76ec7528735d839에서 복구했습니다. Fresh compare는 ahead 3 / behind 0 / files=[]입니다. 보존할 source/test/fixture/contract/benchmark delta가 0이므로 no-valid-delta 예외로 이 PR을 닫습니다.

재진입하려면 동일 브라우저/runtime/CPU에서 실제 session-timeline workload를 대상으로 protected comparator와 candidate를 함께 측정하고, warm-up·반복 횟수, event-count 분포, median/p95, main-thread/CPU, allocation/GC, chart output equivalence를 저장해야 합니다. p95 buyer path 목표와의 관계도 함께 제시해야 합니다.


PR created automatically by Jules for task 3454209458070107971 started by @seonghobae

Date.parse() 파싱 비용을 줄이기 위해 Schwartzian transform (map-sort-map) 적용.
@google-labs-jules

Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 5 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: a646d8b0-ac2d-402d-bce5-72bab7c7620e

📥 Commits

Reviewing files that changed from the base of the PR and between 2fa9201 and 5e39cf9.

📒 Files selected for processing (2)
  • .jules/bolt.md
  • packages/web/src/components/dashboard/session-timeline-chart.tsx

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

seonghobae and others added 2 commits September 7, 2026 22:19
@seonghobae seonghobae closed this Sep 8, 2026
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.

1 participant