Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: streamurile din g++ 4.2 mai rapide decat scanf/printf ? ... asa se pare  (Citit de 3364 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« : Noiembrie 21, 2007, 14:11:32 »

Am rezolvat problema secventa cu niste elevi de clasa a 9a si am fost surprins ca desi au folosit
streamurile din c++ au luat 100...  mai mult folosind scanf/printf am luat 80 de puncte...
Se pare ca in g++ 4.23 sunt mai rapide streamurile...

http://infoarena.ro/job_detail/97624
« Ultima modificare: Noiembrie 21, 2007, 14:14:02 de către Mircea Dima » Memorat
Prostu
Nu mai tace
*****

Karma: 134
Deconectat Deconectat

Mesaje: 323



Vezi Profilul
« Răspunde #1 : Noiembrie 21, 2007, 18:55:39 »

Am incercat si eu pe problemele cerc2 si abc2.
In ceea ce priveste citirea, streamurile par sa mearga putin mai repede cand este vorba de numere, si se descurca aproximativ la fel cand este vorba de stringuri (siruri de caractere char*).
In ceea ce proveste scrierea, avantajul ramane de partea functiilor clasice care merg mult mai repede decat streamurile.
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #2 : Noiembrie 21, 2007, 20:52:55 »

La pb Maxsecv am facut cu streamuri si am luat 60 de puncte. Am facut cu fprintf si fscanf si am luat 100 [fara nicio schimbare a algoritmului ]. Deci aici se dovedeste altceva...
Memorat
Prostu
Nu mai tace
*****

Karma: 134
Deconectat Deconectat

Mesaje: 323



Vezi Profilul
« Răspunde #3 : Noiembrie 21, 2007, 21:47:34 »

La pb Maxsecv am facut cu streamuri si am luat 60 de puncte. Am facut cu fprintf si fscanf si am luat 100 [fara nicio schimbare a algoritmului ]. Deci aici se dovedeste altceva...
Asta se intampla prin ianuarie-februarie. Pe vremea aceea era alta versiune a evaluatorului.
Pana pe 18 februarie a fost 3.3.5, dupa care a fost 4.1.2. Vad ca tu ai trimis sursa de 100 imediat dupa ce s-a facut update compilatorului.
Recent s-a facut update la 4.2.3.
Mai trimite sursa de 60, ar fi interesant de vazut cum se comporta acum.

Later edit:
Am trimis si la maxsecv. Si se descurca mai bine streamurile.
functii clasice: http://infoarena.ro/job_detail/108215
streamuri: http://infoarena.ro/job_detail/108217
« Ultima modificare: Noiembrie 21, 2007, 22:00:58 de către Filip Stefan A. » Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #4 : Noiembrie 21, 2007, 22:18:48 »

scanf si printf - dinozauri pe cale de disparitie Sad.

E cam mare diferenta de timp intre cele doua surse.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« Răspunde #5 : Noiembrie 21, 2007, 22:20:32 »

O chestie care ma enerveaza la g++ 4.23 e ca imi da eroare daca folosesc operatorii <? si >? Neutral
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #6 : Noiembrie 21, 2007, 22:22:27 »

Nu sunt standard operatorii astia Smile.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« Răspunde #7 : Noiembrie 21, 2007, 22:25:57 »

stiu... dar erau mai usor de codat Tongue
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #8 : Ianuarie 05, 2008, 20:39:56 »

Nu prea mai inteleg nimic...la problema "sum" am luat 90 de puncte cu streamuri (2 tle) , iar cand am bagat citirea din stdio.h am luat 100.

Sursa cu citire standard: http://infoarena.ro/job_detail/120546

Sursa cu citire cu streamuri: http://infoarena.ro/job_detail/120544  Think
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #9 : Ianuarie 05, 2008, 20:43:56 »

Probabil din cauza ca citeai long long.

Oricum, pentru cea mai rapida citire tot parsarea cred ca e indicata.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #10 : Ianuarie 05, 2008, 21:55:37 »

Oricum, pentru cea mai rapida citire tot parsarea cred ca e indicata.

Ca tot veni vorba, la oji ar avea vreun rost parsarea?  Ca de obicei, limitele sunt mici... Think
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #11 : Ianuarie 05, 2008, 22:02:47 »

Poate ca daca nu te prinzi de o problema si bagi brute, daca parsezi mai prinzi un test sau doua.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #12 : Ianuarie 05, 2008, 22:08:40 »

Ai dreptate. Dar exista riscul ca, in anumite conditii, parsarea sa dureze mai mult decat citirea normala?
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #13 : Ianuarie 05, 2008, 22:29:29 »

Nu cred. Ai putea sa iti testezi chestiile astea. Faci un fisier cu 1 milion de int/char/long long, etc. si vezi diferentele de timpi intre cele 2 citiri.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #14 : Ianuarie 07, 2008, 20:43:17 »

Totusi nu cred ca vei avea fisiere prea mari la oji incat sa se simta vreo diferenta de la felul in care citesti.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines