2013-12-10 5 views
0

나는 흡혈 거미 같은 질병 스프레더에 대해 이야기하고 있지 않다, 오히려 진드기의 종류는 여기 기록 :기간이 다른 경우 스톱워치의 틱 값은 무엇입니까?

메시지 상자 나 17357 밀리 초 56411802 틱했다 보여 주었다 무엇
Stopwatch noLyme = new Stopwatch(); 
noLyme.Start(); 
. . . 
noLyme.Stop(); 
MessageBox.Show(string.Format(
    "elapsed milliseconds == {0}, elapsed ticks == {1}", 
    noLyme.ElapsedMilliseconds, noLyme.ElapsedTicks)); 

; 이는 밀리 초당 3250.089416373797 틱 또는 초당 약 325 백만 틱과 같습니다.

비율이 너무 이상해서 (3250.089416373797 : 1), 사용 된 하드웨어 또는 기타 요인에 따라 틱의 시간 길이가 변하는 것으로 가정합니다. 실용적인 방법으로 틱 수가 사용되는 경우입니까? 나에게는 밀리 세컨드가 더 많은 가치를 가지고있는 것처럼 보인다. IOW : 왜 틱 (가변 시간 조각)에 관심이 있습니까? (주파수 스톱워치의 또 다른 속성 인)와 문서에서

+1

[Stopwatch.Frequency] (http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.frequency (v = vs.110) .aspx)를 참조하십시오. 하나의 스톱워치 진드기는 '1/Stopwatch.Frequency' 초와 같습니다. –

답변

1

틱은 하드웨어가 시간을 측정하는 원시 수준의 낮은 단위입니다.

"int를 사용할 수있을 때 비트는 용도가 무엇인가"와 비슷합니다. 음, 우리가 비트가 없다면 int는 존재하지 않을 것입니다!

그러나 진드기가 유용 할 수 있습니다. 틱을 계산할 때 밀리 초로 변환하는 것은 비용이 많이 드는 작업입니다. 정확하게 측정 할 때 틱으로 모든 것을 셀 수 있으며 프로세스가 끝나면 결과를 초 단위로 변환 할 수 있습니다. 측정 값을 비교할 때, 절대 값은 관련이 없으며, 관심의 대상이되는 상대적 차이 일 수 있습니다.

물론 높은 수준의 언어와 멀티 태스킹에서는 베어 메탈로 이동하는 경우가 많지 않지만 상위 하드웨어 인터페이스를 통해 원시 하드웨어 값이 노출되어서는 안됩니다. ?

5

:

ElapsedTicks 값 각 눈금 간격 동일한 주파수로 나눈 1 초 시간을 나타낸다. 당신이 하드웨어의 특성에 따라 매우 정확한 타이밍을 필요로하는 경우

Stopwatch.ElapsedTicks (MSDN)

진드기 유용합니다.

2

주어진 시스템에 대한 매우 정확한 성능 측정 값을 알고 싶다면 틱을 사용하십시오. 내부 하드웨어 메커니즘은 틱에서 실제 시간으로의 변환을 결정합니다.

+2

+1. Millisecond는 CPU에 대해 매우 긴 간격입니다. 따라서 충분히 빠른 작업 틱의 성능을 측정하면 갈 수있는 방법입니다 (필요할 경우 나중에 'Frequency'를 저장하여 변환을 수행 할 수 있습니다). –