1 / 2
Nov 2008

Witam. Nie wiem czy ktoś miał taki problem, czy tylko ja.

Otóż napisałem kilka banalnych programików. Chciałem, aby czas ich wykonania był jak najmniejszy - skoro da się to czemu nie? Podczas kilku eksperymentów zauważyłem, że czas wykonania zależy od jakiś dziwnych kryteriów, np. od ułożenia treści.

Ten kod wykonał się w 0.00s

#include <iostream>
using namespace std; 
int main(){  int a,b;  cin >> a >> b;  cout << (a+b);  return(0);}

A ten w 0.02s

#include <iostream>
using namespace std;
int main(){
  ios_base::sync_with_stdio(0);
  int a,b;
  cin >> a >> b;
  cout << (a+b);
  return(0);
}

Te kody jak zapewne wiecie dotyczą zadania PTEST. Podobny problem miałem przy zadaniu NWD. Tutaj czasy zmieniały się w zakresie 0.01s-0.03s, też nie wiem dlaczego. O ile wzrost "czasochłonności" przy zmianie '\n' na endl jestem sobie w stanie wytłymaczyć, to zbawiennego efektu komentarza i nadmiarowej instrukcji przypisania już zupełnie nie.

Może macie jakieś doświadczanie w tej kwestii. Jak pisać programy, aby osiągały jak najlepszy czas? Nie chodzi o wydajność algorytmów, bo zadania o których mówię dotyczą chyba najprostyszych możliwych zagadniej programistycznych. Czy znacie jakieś materiały w necie, które byłyby mi pomocne?

  • created

    Nov '08
  • last reply

    May '16
  • 1

    reply

  • 590

    views

  • 2

    users

  • 1

    link

7 years later

Trzeba przyjąć, że platforma nie służy do dokładnego, z dokłądnością do tysięcznych części sekundy, pomiaru czasu wykonania programów. Prawdopodobnie dokładność wynosi +- 0.01
Nawet na swoim komputerze, gdy mierzę czas wykonania, [przecież mój komp także nie jest skonfigurowany do tego celu, ani nie jest systemem rts - real time system] więc nawet dla tego samego, bez zmian kodu, nigdy nie osiągam dokładnie tego samego czasu.
Zobacz:
http://forum.algoliga.pl/viewtopic.php?f=6&t=848

Suggested Topics

Topic Category Replies Views Activity
System SPOJ 1 175 Jan 30
System SPOJ 2 118 Apr 15

Want to read more? Browse other topics in System SPOJ or view latest topics.