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

dział ogólny

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

Nowy postprzez Cyfrowy Baron » poniedziałek, 10 września 2012, 16:00

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.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

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

Nowy postprzez polymorphism » poniedziałek, 10 września 2012, 18:47

@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.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

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

Nowy postprzez Darek_C++ » poniedziałek, 10 września 2012, 20:39

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ć ?
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

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

Nowy postprzez polymorphism » poniedziałek, 10 września 2012, 22:28

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).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

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

Nowy postprzez Darek_C++ » poniedziałek, 10 września 2012, 22:44

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 :)
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

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

Nowy postprzez Cyfrowy Baron » wtorek, 11 września 2012, 04:55

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.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

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

Nowy postprzez polymorphism » wtorek, 11 września 2012, 09:36

No i w opcjach linkera, jeśli są takie, też ustaw co trzeba (nie pytaj konkretnie co, użyj głowy).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

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

Nowy postprzez Darek_C++ » wtorek, 11 września 2012, 10:37

Takie mam opcje:
Obrazek

Obrazek
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

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

Nowy postprzez polymorphism » wtorek, 11 września 2012, 11:51

  • 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.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

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

Nowy postprzez Cyfrowy Baron » wtorek, 11 września 2012, 15:58

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]
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Poprzednia strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 8 gości

cron