Offcanvas

애플리케이션 / 오픈소스

루비2.7, 가비지 수집과 패턴 매칭 개선

2020.01.07 Paul Krill  |  InfoWorld
루비 프로그래밍 언어의 최신 업그레이드 버전인 루비2.7이 이제 프로덕션 릴리스로 일반에 제공된다. 새로운 릴리스에서는 가비지 수집, 패턴 매칭, REPL(read-eval-print-loop)이 개선됐다.
 
ⓒAleksey Nemiro

루비2.7의 새로운 기능은 압축 가비지 수집으로, 조각난 메모리 공간을 조각 모음하는 데 사용된다. GC.compact 메소드는 더 적은 페이지가 사용되도록 힙에서 객체를 압축한다. 루비 개발 팀원은 일부 멀티-스레드 루비 프로그램이 메모리 조각화를 유발하여 메모리 사용률을 높이고 속도를 떨어뜨릴 수 있다고 설명했다.

루비2.7.0의 다른 개선 사항은 다음과 같다.

• 실험적인 패턴 매칭 기능. 주어진 객체를 가로질러 패턴과 일치하는 경우의 값을 할당할 수 있다. 패턴 매칭은 기능적 프로그래밍 언어에서 널리 사용된다.
• 인터랙티브 루비 쉘인 irb에서 다중 라인 편집이 지원된다. 루비 문서 시스템인 rdoc와의 통합도 제공된다. irb를 사용하면 개발자는 클래스, 메소드 또는 모듈에 대한 참조를 표시할 수 있다. 또한 binding.irb에 표시된 소스 라인과 코어 클래스 객체의 결과를 검사하면 현재의 색상이 지정된다.
• 키워드 및 위치 인수의 자동 변환은 더 이상 사용되지 않는다. 이 기능은 루비3에서 제거될 것이다.
• 루비2.6에서 처음 소개된 JIT(Just-experimental Just-In-Time) 컴파일러의 경우 최적화가 무효화되면 JIT 코드가 최적화되지 않은 코드로 다시 컴파일된다. 또한, 방법 인라이닝은 방법이 순수한 것으로 간주될 때 수행된다. 그러나 많은 방법이 아직 순수한 것으로 간주되지는 않다.
Enumerable#tally는 각 요소의 발생 횟수를 계산한다.
• 기본 블록 매개 변수로 번호가 매겨진 매개 변수도 있다.

ruby-lang.org에서 루비2.7을 내려받을 수 있다. ciokr@idg.co.kr
 
추천 테크라이브러리

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.