Artigos

Tire duas dúvidas com o especialista no assunto Dr. Daphnis Citti de Lauro

스톱워치 예제

스톱워치 클래스는 C#에서 경과 시간을 측정하는 매우 유용한 방법입니다. 평균 요청 시간을 추적하거나, 작업이 수행될 수 있는 시간에 따라 사용자에게 메시지를 보내거나, 코드를 벤치마킹하는 데 사용할 수 있습니다. 개인적인 경험에서 System.Diagnostics.Stopwatch 클래스는 메서드의 실행 시간을 측정하는 데 사용할 수 있지만 주의하십시오: 완전히 정확하지는 않습니다! 이 예제에서는 실행할 코드가 없으므로 경과 시간은 0시간/mins/초입니다. 보시다시피 위의 코드는 두 DateTime 변수를 설정하고 둘 사이의 차이를 빼서 경과한 시간을 계산하는 일반적인 관행보다 훨씬 간결합니다. 스톱워치 개체를 사용하려면 먼저 StartNew()라는 정적 메서드를 사용하여 개체를 만들어 보겠습니다. 이 메서드는 Stopwatch 생성자 호출 한 다음 새 인스턴스에서 Start를 호출 하는 것과 같습니다. 또한 스톱워치.IsHighResolution이라는 정적 필드가 있습니다. 물론 이것은 하드웨어 및 운영 체제 문제입니다. PowerShell 코드를 실행하는 데 얼마나 걸리는지 궁금한 적이 있습니까? 일부 프로세스에 가끔 중단되는 스크립트가 있고 너무 오래 걸리는 경우 스크립트를 종료하는 방법을 원할 수 있습니다.

그렇다면 PowerShell에서 사용할 수 있는 System.Diagnostics.Stopwatch .NET 클래스를 좋아할 것입니다. 스톱워치 오브젝트를 사용하면 PowerShell 스크립트에서 모든 종류의 기회를 열어주는 시작 및 중지 시간을 정확하게 측정할 수 있습니다. 경과 시간을 얻으려면 먼저 스톱워치를 시작합니다 -이 예제에서는 while 루프 내부의 코드가 10 초 이상 실행되지 않도록합니다. 시간 시간을 사용하면 이 유용한 .NET 개체를 사용할 수 있습니다. 스톱워치를 사용하면 어떤 다른 응용 프로그램이 유용하다고 생각하십니까? 대답은 스톱워치가 JITing과 같은 .NET의 “배경 잡음” 활동을 보상하지 않는다는 것입니다. 따라서 메서드를 처음 실행할 때 .NET JIT가 먼저 실행됩니다. 이 작업을 수행하는 데 걸리는 시간은 실행 시간에 추가됩니다. 마찬가지로 다른 요인으로 인해 실행 시간이 달라질 수도 있습니다.

스톱워치 클래스는 관리 코드 내에서 타이밍 관련 성능 카운터의 조작을 지원합니다. 특히 빈도 필드와 GetTimestamp 메서드는 관리되지 않는 Windows API 쿼리성능주파수 및 쿼리 성능 카운터 대신 사용할 수 있습니다. 이 메서드는 실제 상황에서 어떻게 사용되나요? 스톱워치를 사용하는 한 가지 좋은 용도는 시간 시간을 만드는 것입니다. 때때로 끊어지는 작업이 있고 이런 일이 발생하면 전체 스크립트가 멈추지 않도록하려는 작업이 있다고 가정해 보겠습니다. 우리는 잠시 루프에 포함하여 스톱워치를 사용할 수 있습니다. 다음은 스톱워치가 실행중인 총 초를 확인한 다음 일부 코드를 실행하는 예입니다. 매 마이크로 초 이하의 코드를 실행하려고 시도하지 않도록하려면 1 초마다 확인되도록 슬립 cmdlet을 추가했습니다. 다음 예제에서는 Stopwatch 클래스를 사용하여 문자열에서 정수를 구문 분석하기 위한 네 가지 구현의 성능을 측정합니다.