Portál AbcLinuxu, 6. května 2025 16:58

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
17.7.2006 14:25 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Odpovědět | Sbalit | Link | Blokovat | Admin
Myslím, že mnohem podstatnější je, _jak_ je to vlaatně rychlé. Nepodělíš se s námi o tuto informaci? ;-)
Jak moc jsou ábíčkáři inteligentní? ;-)
Jardík avatar 17.7.2006 14:36 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Řekněme, že to není ani moc pomalé, ani moc rychlé. Zajímavé na tom je, že takto to řeší ATOL FM, ale jemu se to seřadí okamžitě. Sice používá k porovnání řetězců strcmp a já g_utf8_collate, ale tím to není. I když použiji strcmp, je na tom atol lépe. Možná to ani tak nezdržuje to řazení jako spíše smazání obsahu modelu a jeho opětovné naplnění. Ten model samozřejmě před těmito operacemi z treeviewu odpojuji.
Věřím v jednoho Boha.
17.7.2006 14:50 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Chceš tím naznačit, že to tady už třetí blogpost ladíš na výkon a ještě jsi to ani jednou nevyprofiloval? :-D
17.7.2006 16:48 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Jakto? Přece proběhl přepis z gtkmm (moc pomalé) do gtk :-D
When your hammer is C++, everything begins to look like a thumb.
17.7.2006 17:06 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Reaguju konkrétně na větu „Možná to ani tak nezdržuje to řazení“... ;-) Někdy nestačí myslet a je třeba vědět. :-D Kdepak, bez profileru při ladění výkonu nehnu prstem. :-)
17.7.2006 19:11 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Já ti rozumím, jenom jsem poukázal na jednu "optimalizaci", která už proběhla :-). Taky nerad přepisuju kód. o němž 100% nevím, že je to ten kousek, co mě zpomaluje.
When your hammer is C++, everything begins to look like a thumb.
17.7.2006 18:25 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Mám to chápat tak, že při požadavku na přeřazení znovu načítáte celý obsah adresáře a na každý soubor voláte stat() nebo lstat()? Pak by mne nepřekvapilo, pokud by problém byl skutečně tady a ne v samotném řazení seznamu.
Jardík avatar 17.7.2006 22:18 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Ale blbost. Nevolám. Pouze při vstupu do adresáře - což se děje i při spuštění programu. Myslel jsem to tak, že musí ještě navíc plnit pár sloupců v treeviewu - a to také zdržuje.
Věřím v jednoho Boha.
17.7.2006 22:23 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Tak to nemůžu sloužit, tak dalece Gtk neznám. Takže mi nezbývá než se připojit k doporučení, abyste na to vypustil profiler, protože jinak můžeme jen prázdně spekulovat.
elviin avatar 17.7.2006 14:36 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Odpovědět | Sbalit | Link | Blokovat | Admin
Zkousel jsi to s std::set/vector? Do toho kontejneru ukladas cely objekty nebo (chytry) ukazatele? Vypada to, ze cely objekty. Mozna v tom bude urcity zrychleni, protoze jestli to mas ulozeny ve vektoru, pak se musi serazena posloupnost kopirovat, resp se kopiruji i objekty. Nebylo by lepsi radit podle ukazatelu?:
typedef shared_ptr<PFileInfo> PFileInfoPtr_t;
typedef std::vector<PFileInfoPtr_t> fileContainer;
elviin avatar 17.7.2006 14:37 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
nemyslel jsem set ale list.
Jardík avatar 17.7.2006 14:41 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
class FileInfoList: public std::vector<FileInfo*>{
...
}
Drží tedy ukazatele. PFileInfo je jen typedef na FileInfo*, abych se vyhnul něčemu jako const FileInfo*& v tom operátoru ().
Věřím v jednoho Boha.
elviin avatar 17.7.2006 14:42 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Aha! diky.
elviin avatar 17.7.2006 14:49 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Jeste neco k tomu napisu. Data jsou proste nekde ulozena. Na ty data ukazujes. A ty ukazatele (v jakekoliv forme) jsou ulozene ve vektorech (treba nebo setech nebo ja nevim co) a kazdy vektor je vytvorenej na zaklade odlisneho zpusobu razeni (objektu kopmaratoru). Jak to dole pise happy barney.

Ale jakej by byl zisk nevim. Mne ten switch prijde takovej jednoduchej, ale zase nadruhou stranu si muzes drzet serazene std:sety (mozna std::vector) a vzdy jen pouzijes ten, ktery proste chces a potrebujes.
17.7.2006 14:38 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Odpovědět | Sbalit | Link | Blokovat | Admin
problem nebude v algoritme, ale v komparatore :-)

preco neskusit (ako som navrhoval)
- extra komparatory (triedy) pre kazdy typ stlpca
- vyhodit . a .. z filelistu

navyse, nie je doriesena otazka, ako sortovat v pripade rovnosti kriteria (datumy, velkosti, ...)

Jardík avatar 17.7.2006 14:45 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
To mně na tom nejvíce štve. V případě std::sort nemám možnost říci, že jsou položky "stejné". Musím to řešit tak, že pokud jsou, musím je setřídit dle jména. Před tím jsem je prostě nechal tam, kde byly. V komparátoru chyba nebude - v atolu je to úplně stejně a je to setřízeno okamžitě.
Věřím v jednoho Boha.
17.7.2006 15:00 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Tu možnost samozřejmě máte: položky jsou ekvivalentní, pokud není a<b ani b<a. Proto se to jmenuje strict weak ordering.
17.7.2006 15:19 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
to by muselo ale byt
return cmpRes == 0;
vlastne i to moze byt dovod tej "pomalosti"
17.7.2006 15:20 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
oprava, samozrejme !=
17.7.2006 16:11 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
tak to snad ne, ten komparátor odpovídá na otázku, jestli je ta dvojice prvků v té relaci, takže se v tom returnu nic měnit nemusí
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
17.7.2006 16:20 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
hopla :-)
no nic, uz si konecne musim dat abclinuxu.cz medzi blokovane stranky v case 6:00 - 18:00 :-))
17.7.2006 15:12 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Odpovědět | Sbalit | Link | Blokovat | Admin
tož, když už je ten komandér tak zaměřenej na to třídění, nemohl by si pro každej adresář pamatovat zvlášť, jak se v něm má třídit, pamatovat by si moh i další věci - třeba způsob zobrazení, jaké sóbory mají být skryté atd.
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
17.7.2006 16:18 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Odpovědět | Sbalit | Link | Blokovat | Admin
tak jsem si to cvicne vyzkousel v Qt a nacteni a setrideni /etc mi vychazi na cca 49ms. Vcetne vypisu do statusbaru a na konzoli. Se mi nezda, ze by to melo byt v Gtk pomalejsi...
Kuolema Kaikille (Paitsi Meille).
17.7.2006 16:52 Feyd | skóre: 1
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
gtk je pomalej rosolovite se prekreslujici sh*t
17.7.2006 16:57 disorder | blog: weblog
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
hehe, vdaka za podstatnu informaciu :)

btw skusil som si prekreslovanie menu v opere (Qt) a sylpheed-claws (Gtk+) a opera nestihala vypisovat viac nez prvu polozku :)
17.7.2006 16:59 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
To je opravdu komentářová perla. Ta přesná fakta, vybroušené formulace… Jestli to byla jen záminka, aby se zobrazilo vedle vašeho jména tlačítko blokovat a mohli jsme ho snadno použít, stačilo nechat komentář prázdný…
Jardík avatar 17.7.2006 18:07 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Proboha. /etc? Tam je skoro prd. Já tam mám 143 položek. V tom commanderu jich mám v seznamu 2000 :) Zkus třeba /usr/bin - 1523. A nezkoušej jen výpis souborů. Zkus si přidat velikost, práva, vlastníka, skupinu - ono tě to pak docela pozdrží.
Věřím v jednoho Boha.
17.7.2006 20:18 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
/usr/bin 1946. Vypisuju tam jmeno souboru, f|d, cas posledni modifikace. Vic se mi nechce delat ;)
20:08:39:458    start
20:08:40:419    end
samozrejme, ziskani celeho vypisu rwxrw-rw- by to urcite zpomalilo, ale trideni mi QListView dela uplne sam - krome trideni podle data modifikace. Tam se musi napsat jedna porovnavaci funkce.
Kuolema Kaikille (Paitsi Meille).
17.7.2006 20:53 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: JXP Commander a std::sort
Odpovědět | Sbalit | Link | Blokovat | Admin
Drobna pripominka k deklaraci te metody:
bool FileInfoComparator::operator()( const PFileInfo& fi1, const PFileInfo& fi2 )
Pokud definice PFileInfo vypada nejak takto
typedef FileInfo* PFileInfo;
tak to dohromady nedela to, co nejspis prepodkladate. Vyleze z toho totiz reference na konstatni ukazatel na objekt FileInfo. Neboli primo fi1 menit nelze, ale objekt, na ktery ukazuje, ano (*fi1 = *fi2 projde). A take je zcela zbytecne cpat na ukazatele jeste reference. IMHO spravna deklarace by mela vypadat takto
bool FileInfoComparator::operator()(const FileInfo* fi1, const FileInfo* fi2 )

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.