Hacker News 의견
  • 루프 예제는 10억 번 반복하며 중첩 루프를 사용함. 이 벤치마크는 첫 두 줄에서 99% 이상의 시간을 소비할 것이라고 추측됨

    • 배열 요소에 대한 활력 분석을 통해 전체 외부 루프를 제거할 수 있으며, 프로그램을 간단하게 변환할 수 있음
    • 컴파일러가 이러한 분석을 수행할 수 있는지 궁금함
    • u가 컴파일 시점에 알려지지 않더라도 내부 루프는 몇 가지 명령어로 대체 가능함
  • Ruby의 향후 버전에 대한 언급이 있으며, Ruby 3.4.0은 이번 크리스마스에, Ruby 3.5.0은 다음 크리스마스에 출시될 예정임

    • Python의 최소 JIT가 이러한 루프에 어떤 영향을 미칠지 궁금함
    • Python 3.13은 JIT가 활성화된 상태로 빌드되어야 하며, 이를 통해 벤치마크를 실행해보는 것이 흥미로울 것임
  • Ruby에 대한 애정이 여전히 남아있음. Matz에게 감사함

  • Integer#succ의 성능 개선 PR이 2024년 초에 있었으며, 이를 통해 Integer#succ를 사용하는 이유를 이해하게 됨

    • Integer#succ는 루프 메서드를 재작성할 때 사용되며, 해석기에서 opt_succ (i = i.succ)putobject 1; opt_plus (i += 1)보다 더 빠르게 처리됨
    • 개인적으로 #succ를 가독성 때문에 자주 사용하며, UUID 라이브러리의 #bytes 메서드에서 두 번 사용하여 코드 읽기 시 "비트 슬라이싱 모드"를 유지함
  • TruffleRuby와 관련된 경험을 공유하며, TruffleRuby가 Node.js보다 빠르고 Bun이나 Golang에 근접함

    • 제공된 벤치마크가 변경 후의 TruffleRuby 속도를 보여주는지 확신할 수 없음
    • 벤치마크를 검증하고 메인 저장소에 커밋으로 추가하고 싶음
  • Ruby가 매우 빨라졌으며, TruffleRuby는 더욱 인상적임

  • YJIT가 Rust로 작성되었다는 사실을 몰랐음

  • Python이 벤치마크에서 가장 느린 언어였지만, 2024년 10월 기준으로 Github에서 가장 많이 사용되는 언어임

    • 언어의 느림과 인기가 상관관계가 있는 것 같음
  • 더 많은 언어를 포함한 오래된 언어 비교 저장소가 있음

  • Advent of Code 솔루션에 큰 변화를 가져왔으며, 놀랍도록 유사하게 보임