• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ile cykli procesora?

Cloud VPS
0 głosów
711 wizyt
pytanie zadane 8 lutego 2017 w C i C++ przez niezalogowany
Chciałem pokazać uczniom, że dana metoda jest mniej wydajna niż inna. Znalazłem więc opis, że funkcja clock() powinna pokazać liczbę cykli procesora. Zrobiłem więc

 

cout << clock();

funkcja();

cout << clock();

 

i dostałem … identyczną liczbę cykli. Czemu?
2
komentarz 8 lutego 2017 przez koczurekk Gaduła (3,420 p.)
Jaka jest ta funkcja? I co ważniejsze, dlaczego ktoś komu przeszło przez głowę użycie clock() zajmuje się uczeniem innych?
komentarz 8 lutego 2017 przez niezalogowany
Zacytowałbym śp. Prezydenta Polski, ale i tak nie zrozumiesz tej aluzji.
3
komentarz 8 lutego 2017 przez koczurekk Gaduła (3,420 p.)
edycja 8 lutego 2017 przez koczurekk

Rzeczywiście, prawdopodobnie słowa śp. Prezydenta Polski nie wyjaśniłyby o jaką funkcję chodzi.

W każdym razie clock() to C, jest nieefektywne, nierzetelne, samo przerzucanie procesu między rdzeniami procesora zaburza wyniki i w ogóle użycie tego dzisiaj nie ma żadnego sensu, powinieneś wykorzystać std::chrono::high_resolution_clock.

//edit: Tu masz skrobniętą na szybko funkcję do mierzenia czasu wykonania, pamiętaj tylko sprawdzić narzut samych pomiarów i go uwzględnić, u mnie to ok. ~50μs.

template<class unit = std::chrono::microseconds, class func_t, typename ... args_t>
long measure(func_t func, const args_t& ... args) {
	auto start = std::chrono::high_resolution_clock::now();
	func(args ...);
	auto stop = std::chrono::high_resolution_clock::now();

	return std::chrono::duration_cast<unit>(stop - start).count();
}

//edit2: Poprawiłem to, żeby było trochę elastyczniejsze.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+2 głosów
3 odpowiedzi 1,313 wizyt
+2 głosów
2 odpowiedzi 2,087 wizyt
0 głosów
1 odpowiedź 641 wizyt

93,483 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,895 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...