|
Titlul: C vs C++ Scris de: Puni Andrei Paul din Aprilie 01, 2009, 19:12:17 tot am vazut pe forum ca se recomanda citirea cu streamuri .... asa ca am facut un programel de test
Cod: #include <stdio.h> iata ce rezultate am avut pentru 1 miliard de numere intregi (int) stdio.h scriere: 90.3 secunde citire: 75.22 secunde fstream scriere: 65.42 secunde citire: 97.38 secunde de ce se recomanda citirea cu streamuri daca e mai inceata ? :P Titlul: Răspuns: C vs C++ Scris de: Andrei Grigorean din Aprilie 01, 2009, 19:18:01 Ce compilator de C++ ai?
P.S.: La concursuri cel mai sigur este sa folosesti functiile standard C. Nu poti sti niciodata cum merg streamurile pe compilatorul oficial. Titlul: Răspuns: C vs C++ Scris de: alexandru din Aprilie 01, 2009, 20:15:51 Citat de ce se recomanda citirea cu streamuri daca e mai inceata ? Nu poti zice ca functiile din stdio.h is mai rapide decat cele din fstream.h si invers. Totul depinde de compilatorul pe care il folosesti, tipurile de date pe care le folosesti, sistemul de operare mai are ceva de zis din cand in cand, etc.scuze n-am fost atent :D. Titlul: Răspuns: C vs C++ Scris de: Puni Andrei Paul din Aprilie 01, 2009, 23:09:58 am testat cu compilatorul de pe infoarena ...
streamuri scriere+citire http://infoarena.ro/job_detail/293671 scriere http://infoarena.ro/job_detail/293676 standard scriere+citire http://infoarena.ro/job_detail/293670 scriere http://infoarena.ro/job_detail/293677 rezultate interesante :) cea mai importanta observatie e ca desi sursa face acelasi lucru de fiecare data cand este rulata, timpii afisati de monitor sunt diferiti ... si a doua e ca nu prea exista diferente in timp ... pentru 5 milioane de numere scrise si citite diferenta e de vreo 0.5 - 0.7 ... diferenta intre timpul de scriere este tot cam de 0.5 - 0.7 ... concluzia mea e ca merg la fel de repede la citire parsare scriu 5 mil numere cu fprintf si citesc 5 milioane cu o functie de parsare http://infoarena.ro/job_detail/293692 aici doar le scriu http://infoarena.ro/job_detail/293687 diferenta de timp este vreo 0.3 - 0.5 secunde (adica timpul in care citesc cu parsare) de aproximativ 7 ori mai rapid decat oricare alta citire :P Titlul: Răspuns: C vs C++ Scris de: Bogdan-Cristian Tataroiu din Aprilie 02, 2009, 08:20:34 Nu stiu in ce masura e un test bun sa citesti dintr-un fisier in care tocmai ai scris. In principiu linuxul il tine cache-uit in memorie si probabil d-aia sunt si diferente asa mari in timpu de executie pentru sursele care fac scriere+citire... Cele cu scriere au timpi mult mai apropiati.
Din cate tin minte diferentele mari intre scanf si cin+freopen(stdin) erau mari pentru ca cin era facut pentru cititul de la consola si folosea un buffer mic. Daca se folosea un ifstream, diferentele nu mai erau sesizabile. Oricum intr-un concurs nu pe asta ar trebui sa se faca diferenta :) |