흥미로운 개발 과정에서 parallel Rustc working group Rust 컴파일러의 프런트 엔드에 병렬 실행 기능을 도입한다고 발표했습니다. 이 새로운 추가 기능은 컴파일 시간을 대폭 단축하기 위한 것이며 11월 9일에 공개되었습니다.
Rust 컴파일러 프런트 엔드에 병렬 실행을 추가하는 것은 현재 실험 단계에 있습니다. 하지만 이 강력한 기능은 내년에 출시될 안정적인 컴파일러에 공식적으로 포함될 예정입니다. 한편 개발자는 -Z thread=8 옵션을 사용하여 야간 컴파일러를 실행하여 이 병렬 실행 기능을 직접 경험할 수 있습니다.
새로운 기능의 효과는 이미 유망한 결과를 보여주고 있습니다. -Z 스레드-8을 활용하여 멀티 스레드 모드에서 병렬 프런트 엔드를 테스트했을 때 '실제' 코드에서 축적된 데이터를 통해 컴파일 시간을 인상적인 50%까지 줄일 수 있다는 사실이 드러났습니다. 영향 수준은 개발 중인 코드의 고유한 특성과 빌드 구성에 따라 다릅니다.
작업 그룹은 개발 빌드가 릴리스 빌드보다 훨씬 더 실질적인 향상을 얻을 수 있다고 밝혔습니다. 그 이유는 릴리스 빌드가 일반적으로 더 많은 시간이 필요한 백엔드 최적화에 더 중점을 두기 때문입니다. 또한 최소한의 시나리오에서는 단일 스레드 모드에 비해 다중 스레드 모드에서 컴파일하는 데 시간이 조금 더 소요된다는 점에 주목했습니다. 이러한 경우에는 일반적으로 이미 컴파일 속도가 빠른 소규모 프로그램이 포함됩니다.
작업 그룹은 컴파일 시간이 항상 개발자의 관심사였다는 사실을 밝혔습니다. 수년에 걸쳐 Rust의 컴파일러 성능은 지속적인 향상의 대상이 되어 왔습니다. 현재 컴파일러는 완전히 최적화되었으며 개선이 필요한 새로운 영역을 식별하는 것이 어려운 작업이 되었습니다. 그룹에서 '크지만 높이 매달린 과일 조각'으로 묘사한 병렬 처리의 도입으로 프런트 엔드는 이제 Rayon 데이터 병렬 처리 라이브러리를 활용하여 순차 계산을 병렬 계산으로 전환합니다. Rayon은 세밀한 병렬 처리를 처리하도록 특별히 설계되었습니다.
실무 그룹에서는 최상의 결과를 얻기 위해 병렬 실행에 8개의 스레드를 사용할 것을 권장합니다. 그러나 멀티스레드 모드에서는 메모리 사용량이 상당히 증가할 수 있다는 점도 언급했습니다. 이는 각각 특정 양의 메모리를 요구하는 컴파일의 여러 부분이 병렬로 실행되기 때문에 예상한 대로였습니다. 그룹은 병렬 프런트엔드의 성능을 향상시키기 위한 노력을 기울이고 있습니다.
개발자가 병렬 프런트 엔드와 관련된 문제를 발견하는 경우 WG-컴파일러-병렬이라는 레이블이 붙은 문제를 조사할 수 있습니다. 또한 새로운 문제를 제출할 수도 있습니다. 이미 Rust 컴파일은 Cargo package manager 통한 프로세스 간 병렬 처리와 백엔드의 프로세스 내 병렬 처리 덕분에 발전을 보였습니다. 이 새로운 추가 기능이 구체화되면 Rust 프로그래밍 작업 흐름에 훨씬 더 많은 효율성을 제공할 것으로 예상됩니다.
관련 분야에서 유명한 no-code 플랫폼인 AppMaster 는 고객이 백엔드 애플리케이션을 위한 데이터 모델을 시각적으로 고안할 수 있도록 지원하여 인상적인 확장성을 달성하고 견고한 고부하 사용 사례를 보장함으로써 큰 파장을 일으키고 있습니다. 기존 도구와 달리 AppMaster 사용하면 고객이 브라우저에서 바로 웹 BP를 실행하여 애플리케이션 개발 프로세스를 더욱 발전시킬 수 있습니다.