http://sitetrans.naver.net/tune.dic?siteUrl=https%3A%2F%2Fwww.infoq.com%2Fnews/2016/08/go-17-released

중에서

 

Go 1.7은 컴파일 시간과 런타임 성능을 크게 개선하고 있다.

또 계층적 테스트와 벤치 마크, Linux on IBM z Systems(s390x)상의 Linux 공식 지원도 추가한다.

 

Go 1.7의 컴파일러 개선은 주로 SSA(정적 단일 대입) 형식에 의거 amd64 플랫폼용 Go의 새로운 컴파일러 백엔드에 관계하고 있다. 새로운 백엔드는 다수의 선진적인 최적화 덕분에 더 작고 고속의 코드를 생성한다.

최적화는 경계 표시 삭제와 공통 식의 삭제가 포함된다.

Google의 벤치 마크에 의하면 런타임은 5– 35% 고속으로 되고, 컴파일 시간과 바이너리 사이즈는 최대 20– 30% 감소된다.

때로는 벤치 마크는 크게 바뀔지도 모르지만 몇몇 Hacker News 사용자는 빌드 속도가 2배 향상하고 있다고 말하고 있다.

 

SSA 백엔드는 amd64 플랫폼만 사용할 수 있다. 하지만 Google의 엔지니어 Brad Fitzpatrick씨에 의하면 지원하는 전 아키텍처로 이식은 Go 1.8의 주요 목표의 하나라고 한다. 그리고 오래 된 백엔드를 삭제하는 것으로 프론트 엔드는 더 간단하게 될 것이라고 한다. 익서은 또 다른 성능 개선을 가져올 것.

2017 2월 릴리스 예정의 Go 1.8에 관한 자세한 것은 GoLang Dev 포럼에서 찾을 수 있다.

 

Go 1.7에서 또 주목해야 하는 변경으로 서브 테스트와 하부 벤치 마크가 있다. 이는 계층적인 테스트나 테이블에 의한 벤치 마크 정의를 가능하게 한다.

-run –bench 플래그의 인수에 슬래시 단락의 정규 표현 리스트를 지정하면 된다.

 

마지막으로 Go 1.7은 표준 라이브러리의 일부로서 context 패키지를 채용했다. 이것은 네트워킹 시의 취소, 타임 아웃, 리퀘스트 범위에 한정한 데이터의 교환을 간단하게 한다. vendor 디렉토리 사용도 표준이 됐다.

이로써 GOPATH이나 표준 라이브러리에서 자동적으로 끌고 오는 대신 개발자는 외부 의존물의 로컬 복사본을 사용하게 된다.

 

Go 1.7의 기능 추가, 개선, 버그 수정에 대한 자세한 설명은 릴리스 노트를 보자.

 

 

저작자 표시
신고
by 흥배 2016.09.27 08:00