2012-12-20 1 views
0

간단한 콘솔 C++ 응용 프로그램을 구축 중입니다. 내가 하나의 컴퓨터에서 실행하면 Windows XP가 출력됩니다. 어느 쪽이 좋아 보인다.이상한 GetTickCount 문제

TickTime : 134993550는

TickTime : 나는 R2Windows Server 2008의 또 다른 컴퓨터에 동일한 실행하면 134,993,560

I 출력 다음 얻을 내가 그나마 어떻게 할 수 이해 있니?

TickTime : 654336178

TickTime : 654336194

#include <iostream> 
#include <windows.h> 
using namespace std; 

int main() 
{ 
    int i=0; 
    while(i<100000){ 
     cout << " TickTime :" << GetTickCount(); 
     i++; 
    } 

} 
+0

숫자 자체에 대해 묻고 있습니까? 컴퓨터가 시작된 이후의 시간 (밀리 초)을 반환합니다. – chris

+3

두 번째 예제에 대한 수수께끼를 발견했다고 설명 할 수 있습니까? – NPE

+0

@NPE 나쁘다. 나는 유닉스 타임 스탬프를 줄 것이라고 생각했다. 어떤 기능을 사용하여 유닉스 타임 스탬프/획기적인 시간을 얻을 수 있습니까? –

답변

1

나는이 문제를 볼 수 없습니다. GetTickCount()는 시스템이 시작된 이후의 시간을 반환하며 절대 값은 반환하지 않습니다. 두 경우 모두 차이가 약간의 틱 (10, 16)이므로 잘 보입니다.

0

이 질문에 대한 질문자는 XP 컴퓨터가 서버 컴퓨터보다 빠르게 코드를 실행하고있는 것처럼 보입니다. 이 퍼즐에 대한 해답은 여러 가지 변수와 함께 복잡하지만 하드웨어 리소스 차이와 작업 부하 차이 (두 가지 모두에서 실행중인 것)가 가장 큰 두 가지 이름을지었습니다. 또한 잠시 동안 실행하고 다른 프로그램 등을로드하는 경우 ... 나는 그 "tics"가 정적 상태를 유지하지 못할 것이라고 생각합니다.

간단히 말해서 서버는 아마도 하드웨어에 영향을 미칠 수있는 소프트웨어를 실행하고 있다면