cpu사용률 관련해서 궁금한 점이 있습니다.
제가 3D게임 프로그래밍하다가 문득 "이 프로그램은 cpu를 얼마나 차지하나"가 궁금해져서 작업관리자 창 열어서 확인해보니
거의 다른 프로세서들 비슷하게 0~1% 왔다갔다 하더라고요..생각보다 너무 cpu사용을 안해서 왜 이렇게 낮은건지 궁금합니다.
일단 지금 제가 작성한 3D프로그래밍 구조는 기본적인 Window API 메세지루프방식입니다. 메세지가 있으면 특정함수가 실행되고
없으면 계속 Render() 라는 함수가 실행됩니다.(3D게임 작성해 보신분들은 대충 아시겠지만..)
아직은 배우는 수준이라 그냥 캐릭하나 랜더링 하는거긴 한데 그래도 폴리곤 500개 이상은 되는 모델이고 또 animation으로 행렬보간도 계속 되는건데..;
왜 이렇게 낮은지 잘 모르겠습니다.
제가 이거 말고 추가로 실험하나 해본게 있는데 아래 코드는 cpu사용률 50%이상의 압도적인 사용률이 보이더라고요
void main()
{
while(1){}
}
어차피 제가 만든 게임프로그램도 무한루프돌며 계속 Render()함수 호출도하고..수행해야할 코드가 계속 있는거나 다름없는건데..
두개가 뭐가 다른지 모르겠습니다.
제가 알아본 바로는 cpu사용률 측정 메커니즘은 짧은시간간격으로 tick를 보내서 그떄그떄 사용되는 프로세서가 무엇인지 센서하고
그 통계를 비교하는 방식인걸로 알고있는데 그렇다고 해도 위에 궁금증이 해결이 안되서 이렇게 문의드립니다.
뭔가.. 스케쥴링 방식의 차이인가요?
어떤 툴로 프로그래밍 하시는지 모르겠습니다만
어떤 툴로 프로그래밍 하시는지 모르겠습니다만,
3D를 하신다니 아마 GPU를 통해 하지 않을까 싶네요.
아니면 특별히 CPU를 사용해서 렌더링을 하시는데 CPU를 사용 안한다는 말씀이신가요?
while 루프는 CPU에서 처리하는게 맞습니다.
댓글 달기