대기 중인 백그라운드 작업 플러시
플러시를 수행하면 대기 중인 백그라운드 작업이 코드 실행이 끝난 뒤 완료되기를 기다리는 대신, 메인 스레드와 병렬로 완료되도록 강제할 수 있습니다. 대용량 데이터셋으로 평가를 실행하면, 데이터셋이 백그라운드 스레드에서 업로드되는 동안 프로그램 실행이 완료되기까지 오랜 지연이 발생할 수 있습니다. 이는 메인 스레드 실행이 백그라운드 정리 작업이 완료되기 전에 끝나기 때문에 발생합니다.client.flush()를 호출하면 모든 백그라운드 작업이 메인 스레드에서 처리되도록 강제하여, 메인 스레드 실행 중 병렬 처리가 이루어지도록 합니다. 이는 사용자 코드가 서버로의 데이터 업로드보다 먼저 완료되는 경우 성능 향상에 도움이 될 수 있습니다.
다음 예시에서는 평가 후 대기 중인 백그라운드 작업을 플러시합니다.
클라이언트 병렬성 늘리기
클라이언트 병렬성을 높이면 Weave가 데이터셋 업로드와 같은 백그라운드 작업에 사용할 수 있는 스레드가 더 많아지며, flushing과 함께 정리 시간도 더욱 줄일 수 있습니다. Weave는 환경에 따라 클라이언트 병렬성을 자동으로 결정하지만, 다음 환경 변수를 사용해 수동으로 설정할 수도 있습니다:WEAVE_CLIENT_PARALLELISM: 병렬 처리에 사용할 수 있는 스레드 수입니다. 이 값을 늘리면 데이터셋 업로드와 같은 백그라운드 작업의 성능이 향상될 수 있습니다.
weave.init()의 settings 인수를 사용해 프로그래밍 방식으로 설정할 수도 있습니다:
성능 평가