Strona 3 z 3

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: poniedziałek, 10 września 2012, 16:00
przez Cyfrowy Baron
polymorphism napisał(a):Jestem ciekaw, co powoduje te opóźnienia w ifstream z Buildera.


Ja używam teraz C++Builder XE2 i ifstream wg. Twojego kodu jest u mnie szybsze niemal o 1/3 od THashedStringList jednak gdy uruchomiłem u siebie projekt zamieszczony przez Darek_C++ to ifsteam było dużo wolniejsze. Sprawdziłem również w C++Builder 2010 i jest tak samo. Wychodzi na to, że biblioteki w nowszych wersjach środowiska działają sprawniej.

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: poniedziałek, 10 września 2012, 18:47
przez polymorphism
@Slynx, testowałem już wcześniej ze zmianą bufora, ale różnica przy 52MB pliku była żadna (u mnie strumień domyślnie ma 4KB, wielkość klastra).

@Baron, ja cały czas uważam, że on coś ma nie tak ustawione w projekcie, bo różnice są za duże. Dobrze by było, jak by skompilował programik w wersji release z debug info, wtedy można by sprawdzić na jakimś profilerze, o co tu chodzi.

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: poniedziałek, 10 września 2012, 20:39
przez Darek_C++
polymorphism napisał(a):ja cały czas uważam, że on coś ma nie tak ustawione w projekcie, bo różnice są za duże. Dobrze by było, jak by skompilował programik w wersji release z debug info, wtedy można by sprawdzić, na jakimś profilerze o co tu chodzi.
Jak to zrobić ?

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: poniedziałek, 10 września 2012, 22:28
przez polymorphism
W sumie to nie do mnie pytanie powinno być, ale poszukaj w opcjach projektu, a dokładniej w ustawieniach kompilatora i linkera, jakichś opcji dotyczących generowania debug info. Jak poustawiasz co trzeba, przekompiluj projekt i udostępnij cały katalog z exekiem (chodzi o te inne duperele, które kompilator wygeneruje poza plikiem wykonywalnym).

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: poniedziałek, 10 września 2012, 22:44
przez Darek_C++
Kierowałem bardziej do CB, bo on używa Borlanda, więc ustawienia takie o jakich Pisałeś pewnie są mu bardziej znane niż mi :)

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: wtorek, 11 września 2012, 04:55
przez Cyfrowy Baron
Darek_C++ napisał(a):Kierowałem bardziej do CB, bo on używa Borlanda,


Z TEC++ nigdy nie miałem do czynienia, a począwszy od wersji 2009 wszystko tak się pozmieniało...

Co do optymalizacji to poszukaj sekcji C++ Options -> Optimalization i tam poustawiaj co trzeba, sprawdź w pomocy do tej sekcji. Ale u mnie i bez włączania optymalizacji kod działa szybko.
Co do debug info to w sekcji C++ Options -> Debugging masz opcję Debug information więc ją zaznacz.

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: wtorek, 11 września 2012, 09:36
przez polymorphism
No i w opcjach linkera, jeśli są takie, też ustaw co trzeba (nie pytaj konkretnie co, użyj głowy).

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: wtorek, 11 września 2012, 10:37
przez Darek_C++
Takie mam opcje:
Obrazek

Obrazek

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: wtorek, 11 września 2012, 11:51
przez polymorphism
  • w C++ Compiler (bcc32) -> Debugging zaznacz opcję -v
  • w Linker -> Linking zaznacz także opcję -v
  • w C++ Compiler (bcc32) -> Optimalizations zaznacz opcję -O2
Te opcje ustaw tylko w konfiguracji release.

Re: [BCB C++] Liczenie lini \r\n danych z dużych pliku

Nowy postNapisane: wtorek, 11 września 2012, 15:58
przez Cyfrowy Baron
polymorphism napisał(a):w C++ Compiler (bcc32) -> Optimalizations zaznacz opcję -O2


Otwierałem jego projekt w C++Builder XE2 i ta opcja była tam zaznaczona, a konkretnie Optimize: Generate fastest possible code {-O2]