펄 프로그램에서 NYTProf를 실행했는데, "언팩"을 한 행이 많은 시간을 필요로한다는 사실에 놀랐습니다. (줄은 14654 번 실행되고 39.6ms가 걸렸습니다). 하지만 unpack() 함수 자체가 매우 빠릅니다.느린 펄 성능, 개선 이유 및 방법
$delme1 = substr($data, 47,1)
$_flags = unpack("C", $delme1);
# spent 2.98ms making 14654 calls to main::CORE:unpack, avg 203ns/call
왜 이런 큰 오버 헤드가 발생했는지 알 수 있습니다.
감사 1
업데이트 "압축"호출로 라인을 참조하십시오. 총 39.6ms를 소비했다고합니다.
왼쪽에있는 숫자가 무엇인지 모르겠지만 합계는 2.98ms이고 각 패스에는 2.98ms/14654 통화 = 203ns/통화가 걸렸다 고 말한 것입니다 – ikegami
39.6ms의 열에는 제목 "시간 온라인"NYTProf에 따라. 2.98ms의 열은 "Timein subs"입니다. 몇 줄이있는 루틴에서 소비 한 총 시간을 살펴보면 전체 시간 동안 39.6ms 가량 가중됩니다. 여하튼, CPU는 그 라인에서 많은 시간을 보냈습니다. – packetie
Coroberation :'perl -MBenchmark = timethis -e'timethis (-3.1) {my $ x = unpack ("C", "X");}});'출력' 3283.39/s'이며, 이것은 1 개 unpack + assignment + loop마다 304ns입니다. – ikegami