문제

나는 PHP와 Python(그리고 잠재적으로 내가 포함해야 하는 다른 언어)의 정확한 런타임 비교를 얻으려고 노력하고 있습니다.스크립트 내의 타이밍은 내 문제가 아니지만 스크립트 내의 타이밍은 스크립트를 실행하여 출력하라는 요청이 이루어진 순간부터 모든 것을 설명하지 않습니다.

1) 실제로 그러한 사항을 고려할 가치가 있습니까?

2) 고려할 가치가 있다고 가정하면 어떻게 해야 합니까?

저는 Mac을 사용하고 있으므로 Linux 명령에 액세스할 수 있으며 도움이 되는 명령을 컴파일/생성하는 것이 두렵지 않습니다. 그런 명령을 작성하는 방법을 모르겠습니다.

도움이 되었습니까?

해결책

귀하의 아이디어가 언어를 비교하는 것이라면 그 언어 이외의 것은 비교 목적과 관련이 없다고 말하고 싶습니다.

그럼에도 불구하고 time 명령을 사용하여 모든 것을 측정하고 이를 스크립트 내의 타이밍과 비교할 수 있습니다.

이와 같이:

$ time script.php
HI!

real    0m3.218s
user    0m0.080s
sys     0m0.064s

시계 시간, 사용자 시간(PHP 인터프리터) 및 시스템 시간(OS 시간)을 제공합니다.

웹을 생각하고 있다면 웹 서버 오버헤드를 혼합해야 하기 때문에 훨씬 더 어려워지고, 예를 들어 WSGI v/s mod_php를 사용하는 경우 비교하기가 항상 쉽지는 않습니다.그런 다음 체인의 웹 서버 부분에도 프로브를 연결해야 합니다.

다른 팁

  1. 코드를 최적화하는 경우 속도를 고려할 가치가 있습니다.일반적으로 코드를 최적화하는 이유를 알아야 합니다(예:기존 코드베이스의 특정 작업이 너무 오래 걸립니다. "PHP가 Python보다 느리다고 들었습니다."가 아닙니다.그것은 ~ 아니다 실제로 언어를 전환할 계획이 없다면 속도를 고려해 볼 가치가 있습니다.하나의 작은 모듈이 약간 더 빠른 작업을 수행한다고 해서 앱을 다른 언어로 다시 작성하는 것이 좋은 생각은 아닙니다.속도 외에도 언어를 선택하는 데에는 다른 많은 요소가 있습니다.

  2. 물론 벤치마킹합니다.두 코드베이스를 여러 번 실행하고 타이밍을 비교하십시오.당신은 사용할 수 있습니다 시간 두 스크립트가 모두 셸에서 실행 가능한 경우 명령을 실행하거나 각 언어의 해당 벤치마킹 기능을 사용합니다.후자의 경우는 당연히 실제 언어에 크게 의존합니다.

"time" 명령을 사용하면 다음과 같은 도움이 됩니다.

you@yourmachine:~$ time echo "hello world"
hello world

real    0m0.000s
user    0m0.000s
sys 0m0.000s
you@yourmachine:~$ 

그리고 이것은 환경 외부의 타이밍을 맞추게 될 것입니다.

실제로 추가 작업 시간을 정해야 하는지 여부에 관해서는...그것은 전적으로 당신이 무엇을 하고 있는지에 달려있습니다.나는 이것이 일종의 웹 애플리케이션을 위한 것이라고 가정하므로 사용하는 프레임워크가 실제로 어떻게 작동하는지에 따라 다릅니다.일종의 컴파일된(또는 구문 분석된) 버전의 스크립트를 캐시합니까?그렇다면 시작 시간은 전혀 관련이 없습니다(첫 번째 히트에만 시작 시간이 존재하므로).

또한 첫 번째 실행을 할인할 수 있도록 루프에서 테스트를 실행해야 합니다(원하는 경우 보고서에 첫 번째 실행 비용을 포함).Java에서 몇 가지 테스트를 수행했는데 JIT가 작업을 수행하기 때문에 첫 번째 실행이 항상 가장 느립니다(그리고 PHP, Python 및 시도하는 다른 언어에서도 동일한 종류의 적중이 존재할 수 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top