• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

while 문 cpu 100..

22.01.18 20:57 작성 조회수 610

1

안녕하세요~ 좋은 강의 잘 듣고 있습니다 

다름이 아니라 while 문으로 서버에 send 값을 계속 받기 위해 recv 하는 구문을 while 반복문으로 했는데....cpu가 100을 칩니다...ㅠㅠ 

일단 제 os 는 윈도우 입니다..ㅠㅠ python 버전은 3.10.2 최신 버전 입니다.. mac에서는 잘되었는데..윈도우에서는 계속 cpu 100을 치네요.. 

while True: 

time.slee(0.2)를 넣어주고 프로그램 실행하면 서버에서 보낸 값을 받고서는 계속 뭔가 실행되듯이 화면이 내려갑니다..ㅠㅠ

 

 

 

답변 1

답변을 작성해보세요.

0

컴퓨터 사양이 어떠시길래 time.sleep(0.1) 에서 cpu 100%를 점유하는지 이해가 가질 않습니다.

컴퓨터 사양이 엄청 낮거나, 가상환경이거나 그런 외부적 요소 때문인걸로 보입니다만...(혹시 가상 환경이신가요????) 

일반적인 i5 급 이상에서도 time.sleep(0.1) 에서 cpu 점유율이 100%를 친다면 뭔가 문제가 있어 보입니다.

(파이썬 자체로 그렇게 cpu를 점유하기가 쉽지 않고 0.1 초가 cpu 입장에서는 엄청 긴 시간입니다.)

 

위의 코드를 무시하고

그냥 단순히

a = 0
while True:
    print(a+1)
    time.sleep(0.1)

 

위와 같은 코드를 작성하시어  time.sleep() 값을 조금씩 늘려보시면서 테스트 해보시기 바랍니다.

그리고 위 코드가 동작중이지 않을때 Idle 상태일때의 점유율도 체크해보시기 바랍니다.

만약 가상환경인데 저 정도라면 아마도 윈도우에서 가상을 돌리시는게 아닐꺼라 판단됩니다만...

그렇다면 그냥 맥이던 리눅스던 그 환경에서 작업하시는게 좋을꺼라 판단됩니다.

(특히 맥에서의 가상환경은 윈도우에서의 가상환경과는 완전 다른 퍼포먼스를 보입니다.

윈도우 전용 프로그램인 경우만 코드를 이해하시는 정도로 테스트 하시는게 좋을것 같습니다.)

 

더 궁금하시거나 해결되지 않으시면 다시 질문 주시기 바랍니다.

(질문에 많은 정보를 주시면 제가 상상하는데 도움이 많이 됩니다. ^^;)