공부중

[UE] 언리얼 엔진에서 http를 통해 파일을 다운로드 받을 때 속도가 느린 문제 본문

Programing/UnrealEngine

[UE] 언리얼 엔진에서 http를 통해 파일을 다운로드 받을 때 속도가 느린 문제

곤란 2023. 10. 29. 22:13
반응형

언리얼 프로젝트에서 http를 통해서 조금 큰 파일(약1GB)을 다운로드 받게되는 상황이 있었는데 속도가 느려도 너무 느린 문제가 발생했다.

 

일단 테스트한 코드는 아래에서 참고를 했다.

https://ballbot.tistory.com/22 

 

[UE4] HTTP 통신으로 파일 다운로드

언리얼 엔진으로 VR 리듬게임 프로젝트를 진행하고 있다. 리듬 게임에서 중요한건 당연 음악인데, 인게임에 음악은 동적으로 추가되고 제거되어야 한다. (음악 파일 을 추가할때마다 업데이트를

ballbot.tistory.com

다른점이라면 로그가 아닌 위젯으로 현재상황을 보여준다 정도로 다른것은 없다.

 

다운받는 영상을 보면...

 

 

 

 

 

무려 11분이라는 어마어마한 시간이 걸린다.

(아니 FHttpRequestProgressDelegate에서 int32이라 총 용량이 아래와 다르다.. -_- 일단 속도를 중점으로 보자)

 

아니 원래 느린거 아닌가? 할수도 있지만..

크롬에서는 약 4분.

curl 명령어를 통해서는 1분 후반대가 나왔다..

이건 뭔가 문제가 있는거라고 생각이 든다.

조금 차이나는것도 아니고 몇배는 차이가 발생하니까.

 

`Stat HTTPThread` 를 통해서 보면 Sleep에 많이 걸린게 눈으로도 보인다.

뭔가 옵션이 있겠지 하고 찾아본 결과 아래의 링크를 찾을 수 있었다.

https://forums.unrealengine.com/t/http-why-is-http-get-so-slow-ue4-is-performing-15x-slower-than-python-at-downloading-a-file/364768/12

 

[HTTP] Why is HTTP GET so slow, UE4 is performing 15x slower than Python at downloading a file

The only note on it is that it isn’t affecting anything bad enough to be critical. There is a plan to look at it whenever they can get to it, though.

forums.unrealengine.com

[Networking]
 UseLibCurl=False

이라던가...

[HTTP.Curl]
BufferSize=524288

등등 버퍼사이즈를 조절하는 방법이 소개 되었지만 내가 선택한 방법은 nullbus라는 유저의 답글이었다.

 


Http Request의 fetch rate는 FHttpModule에 의해서 제어 되고있고

HttpThreadActiveFrameTimeInSeconds변수가 핵심이며 기본값이 약 0.005(200Hz)인데 이거를 적절하게 조절하면 합리적인 다운로드 속도를 얻을 수 있고 엔진 구성 파일에서 이 값을 제어 할 수 있다.

[HTTP]
HttpThreadActiveFrameTimeInSeconds=0.00001

 

이 글을 보고 위와같이 DefaultEngin.ini파일의 맨 아래에 추가했다.

 

결과는 아주 놀라웠고 영상을 통해서 보자.

 

CallCount가 이전과는 달리 아주 많이 올라가는것이 인상적이다.

걸린시간은 약 1분이고 기본적으로 값이 저렇게 된것이 뭔가 http통해서 큰 파일은 받지 않겠지? 라는것이 대부분이라 저렇게 세팅된거같다는 생각이 든다.

 

반응형