약간의 멀티 프로토콜 이미지 스트리밍 서버 (Python으로)를 프로그래밍하고 있으며 모든 프로토콜이 정상적으로 작동합니다. 단, 멀티 캐스트 프로토콜을 사용하면 CPU 사용량이 최대 150 % !파이썬에서 멀티 캐스트를 사용할 때 CPU 사용량이 높음
여기에 멀티 캐스트 코드입니다 :
이 delay = 1./self.flux.ips
imgid = 0
lastSent = 0
while self.connected:
#self.printLog("Getting ready to fragment {}".format(imgid))
fragments = fragmentImage(self.flux.imageFiles[imgid], self.fragmentSize)
#self.printLog("Fragmented {} ! ".format(imgid))
# Checking if the delay has passed, to respected the framerate
while (time.time() - lastSent) < delay:
pass
# Sending the fragments
for fragmentid in range(len(fragments)):
formatedFragment = formatFragment(fragments[fragmentid], fragmentid*self.fragmentSize, len(self.flux.imageFiles[imgid]), imgid)
self.sendto(formatedFragment, (self.groupAddress, self.groupPort))
lastSent = time.time()
imgid = (imgid + 1) % len(self.flux.images)
UDP 프로토콜은 또한 조각으로 이미지를 전송하고, 나는 어떤 CPU 사용 문제가 발생하지 않습니다. 클라이언트는 또한 이미지를 가져 오는 데 약간의 대기 시간이 있음에 유의하십시오.
어떻게 CPU를 150 %까지 늘리나요? 그럴 가능성은 희박합니다. –
서버가 멀티 스레드이고'top' 프로그램이 프로그램 당 CPU 사용량을 보여줄 때 150 % CPU가 그럴듯합니다. – user4815162342