코드 성능 계산

코드에 대한 기준 테스트는 코드를 잘 유지하는 매우 중요한 절차이다.언어가'빠르다'인지'느리다'는 것은 특별히 중요하지 않다. 왜냐하면 모든 언어는 자신이 잘해야 할 목표 플랫폼이 있기 때문이다.

JavaScript 벤치마크 테스트 코드


JavaScript에서는 웹 브라우저의 클라이언트에서 쉽게 테스트할 수 있는 매우 간단한 방법으로 코드의 성능을 평가할 수 있습니다.
다음 예를 살펴보겠습니다.
function reallyExpensiveFunction() {
  for (let i = 0; i < 10000; ++i) {
    console.log("Hi\n");
  }
}

console.time('reallyExpensiveFunction');
console.timeEnd('reallyExpensiveFunction');
우리는 함수console.time를 사용하여 우리의 워크스테이션을 시작하고 끝낼 수 있으며 우리의 기능을 테스트할 수 있다.

다음은 당신이 얻을 수 있는 출력입니다



너는 repl-it에서 이 예를 시험해 볼 수 있다.

C 벤치마크 테스트 코드


믿든 안 믿든 너에게 달려 있다. C의 같은 코드는 자바스크립트 예시와 매우 비슷하다.
이 예를 살펴보겠습니다.
#include <stdio.h>
#include <time.h>

void really_expensive_function() {
  for (int i = 0; i < 10000; ++i) {
    printf("Hi\n");
  }
}

int main() {
  clock_t start = clock();
  really_expensive_function();
  clock_t end   = clock();
  printf("Took %f seconds\n", (((float)(end-start) / CLOCKS_PER_SEC)));
  return 0;
}

console.timeEnd 내 기계에도 clock_ttypedef가 있고, 너의 기계에도 마찬가지일 수 있다.그럼에도 불구하고, 당신은 long을 사용해야 합니다. 왜냐하면 서로 다른 기계에 따라 다를 수 있기 때문입니다.우리는 이 매우 비싼 함수의 전후 시스템 시간을 얻었고 초 단위의 시간량을 얻을 수 있었다.
너는 repl-it에서 이 예를 시험해 볼 수 있다.

다음은 당신이 얻을 수 있는 출력입니다



현실을 이해하다


이런 예들은 작은 블록 코드를 테스트하기에 매우 적합하지만 복잡한 기준 테스트를 해야 하는 대형 코드 라이브러리에는 불가능하다.

복잡한 벤치마크

  • 분석
  • 탐사기는 실제로 무엇을 합니까?프로그램 프로필은 개발자로 하여금 프로그램의 기능의 공간과 시간의 복잡성을 측정할 수 있게 한다.만약 프로그램이 속도를 늦추는 주요 병목이 있다면, 이 점은 특히 중요하다. 만약 프로그램이 많은 요청을 하는 시스템이라면, 이 점은 특히 나쁘다.이런 도구의 한 예는 orbit로 프로그램의 성능을 시각화할 수 있다.
  • 입출력 벤치마크 테스트
  • IO 작업은 사용자가 시스템 파일을 입력하거나 읽거나 쓰는 작업을 수신하는 것으로 주로 운영체제 핵의 조작이 필요하다.이런 조작은 통상적으로 프로그램에서 가장 비싼 조작이다.그러나 프로그래머가 시스템 호출에 걸리는 시간을 관리할 수 없기 때문에 성능 향상을 위한 시스템 호출을 줄이는 것이 좋다.
  • 분산 시스템
  • 이 시스템은 매우 복잡하기 때문에 시스템의 성능을 검사할 필요가 있다.일반적으로 컴퓨터마다 완전히 같지 않기 때문에 성능을 정확하게 평가하기 어렵다.서로 다른 컴퓨터는 서로 다른 CPU, 네트워크 플러그인과 설정을 가지고 있는데 이런 컴퓨터는 공유기와 서로 통신하는 다른 네트워크 시스템과 상호작용을 하여 성능의 계산 방식에 영향을 미친다.이러한 시스템의 성능을 확정할 때 상대적인 기준을 제시하거나 충분한 기준을 제시하여 이 시스템에 종사하는 단체가 이 프로젝트를 평가할 수 있도록 하는 것이 가장 좋다.
  • 리소스


    JavaScript:
    자바스크립트에 대해 이미 좋은 기준 테스트 도구가 있는데 가장 유명한 것은 Benchmark.jsBench-Rest이다.이 도구들을 사용하면 코드의 성능을 정확하게 테스트할 수 있습니다.일반적인 경우, 테스트된 소프트웨어를 사용하여 받아들일 수 있는 기준 테스트를 원합니다. 왜냐하면 오늘 보여준 프레젠테이션은 매우 자질구레하기 때문에 원하는 모든 결과를 제시하지 못할 수도 있습니다.
    C++:
    C++에는 상당히 많은 기준 테스트 라이브러리가 있는데, 그 중 일부 최근의 라이브러리는 C++20의 유연성과 관련이 있다.가장 주목할 점은 Google BenchUT이다.C에는 특정한 기준 라이브러리가 많지 않지만, C 코드와 C++ 기준 라이브러리를 쉽게 집적하여 C 코드의 성능을 테스트할 수 있습니다.

    결론


    최종적으로 코드에 대한 기준 테스트를 어떻게 하는지에 달려 있습니다.일반적으로 프로젝트에 대한 기준 테스트를 하기 전에 인코딩을 원합니다. 만약 성능에 문제가 있다면, 이 기준 테스트 라이브러리를 사용하거나 성능 개요 파일을 사용하여 병목을 찾을 수 있습니다.나는 네가 오늘 약간의 것을 배웠으면 한다.

    좋은 웹페이지 즐겨찾기