1.1 버전 패치노트에서 벨트 최적화 내용을 보고 직접 비교해봄
Optimisations
- Multithreaded belt update logic.
- Overall small entity update time reduction + statistics of how much update time is taken by individual entities.
무려 벨트를 멀티쓰레드로 처리하게 됐다고 한다
테스트에 사용할 맵은 예전에 레딧에서 받은 15kspm짜리 기가베이스임
다른거 아무것도 없고 이렇게 생긴 250 SPM 짜리 모듈 60개만 딸랑 있는 맵
벨트, 봇이 적당히 섞여있는 UPS 최적화된 디자인이라고 함.
내가 만든거 아니라 잘 모름
테스트는 /c game.speed=4 로 놓고 풀가동한 상태로 테스트함
좌측이 1.0, 우측이 1.1
벨트의 업데이트 타임이 3.0 ms 에서 1.5 ms 로 거의 반이 줄었다
벨트 자체 연산만 고려하면 무려 2배로 빨라졌다는 얘기임
밑에 Entity update도 8.4 ms 에서 7.8 ms 로 살짝 줄어든것 같은데
이정도면 시간에 따른 평균을 내봐야 되서
캡쳐 한장만으로 비교하긴 좀 어려울듯
그러면 진짜로 멀티코어를 쓰는지 보자
멀티쓰레드에 의한 최적화니까 당연히 CPU의 영향을 크게 받을거고
일부러 지금 쓰는 CPU가 보이게 캡쳐함
CPU의 대략적인 사양은 Intel i5-9600K @4.8GHz OC, 6코어, 하이퍼스레딩 없음
확실히 메인 코어 말고 다른 코어들 사용량이 증가함
그래프랑 마찬가지로 점유율 봐도 좀 늘었음
메모리는 DDR4 8GBx2 @3600MHz OC
CPU 메인 코어 점유율 100%가 아니라서
메모리 병목인지 CPU 병목인지 약간 애매한 상황이긴 한데
그래도 벨트 최적화 엄청 된건 확실하고
하이퍼쓰레딩도 전보단 잘 쓰는것 같음
한줄요약 : 이제 봇과 기차의 시대는 갔다. 벨트가 최고다.
1.1 씨퓨 테스트 중간에 뭐했길래 코어 몇개가 반으로 가동률 뚝 떨어짐
맵 최소로 축소해서 보니까 렌더링 때문인지 풀가동 해서 저럼. 뒤쪽은 최대로 확대해서 지도에 땅만 보인 상태에서 찍은거
라이젠 32코어에서 돌린거 궁금하네