0
내 .H 파일에이 코드가
로 코드를 프로파일 링 :표준 : mt19937으로 나왔죠 및 gprof를
std::mt19937 rng(time(NULL)); // mersenne numbers
int random(int n) {
std::uniform_int_distribution<int> distribution(0, n);
return distribution(rng);
}
을하지만 난 결코 전화 random()
을 .
내가 gprof를 가진 코드를 프로파일 링하고, 내가 얻을 : 무슨 일
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
99.13 2.28 2.28 1 2.28 2.28 random(int)
?
함수 본문을'return 0; 또는'std :: this_thread :: sleep_for (std :: chrono :: seconds (1));로 대체하면 여전히 나타 납니까? return 0;'? – stefan
컴파일러를 적극적으로 인라인하는 경우에는 rng가 무작위로 일부 코드를 사용할 수있는 경우 rng 및 random 코드가 혼합 될 수 있습니다. -O0을 사용하여 다시 시도하십시오 – Surt
@Surt that 's it! 스테판, 다른 해결책이 효과가 있었기 때문에, 나는 너의 것을 시험하지 않았다. 서둘러, 너는 그 질문에 답할 수있어, 나는 그것을 받아 들일 수있다. – gsamaras