Portál AbcLinuxu, 2. června 2025 11:33
Ano, je to tak. GIO je pomalej šmejd. Dneska jsem zjistil, že v SVN repozitáři Thunaru je branch migration-to-gio. Tak jsem to zkusil zkompilovat. Zkompilovalo se a zkusil jsem. Otevřu /usr/lib64 a několik sekund to šrotovalo na disku než to ukázalo obsah adresáře. Zkusím ještě 3x za sebou, když už je adresář v cache - to je o něco rychlejší, ale stále nic moc. Tak a teď pustím starý Thunar fungující na ThunarVFS. Otevřu /usr/lib64 a světe div se - je to minimálně 3x rychlejší než GIO varianta. Zkusím ještě 3x a stále stejně rychlé. Ještě znovu zkusím Thunar/GIO a potvrdím si, že je to pamalý.
Závěr: GIO = pomalej šmejd. Sice má použití GIO své výhody (jako mountpointy viditelné ve všech GTK aplikacích), ale oproti tomu 3x nižší rychlost je nechutnost. A teď si vemte, že kdyby ThunarVFS nečetl každý soubor v adresáři a zjišťoval typ souboru efektivnějším způsobem (tj. podle přípony), ukázal by se adresář okamžitě, jak se tomu děje např. v Tux Commanderu. A u souborů bez přípon by mohl testovat execute bit a pokuď tam není, tak kouknout dovnitř a určit typ na základě obsahu. Jenže to by každej měl tři prdele keců, že určovat typ podle přípony je špatné. Přitom je to několikanásobně rychlejší, než přečíst jánevimkolik bajtů ze souboru a porovnat s mime databází.
Tiskni
Sdílej:
Není nad vědecký přístup.
€ time gvfs-ls /usr/lib/ >/dev/null
real 0m0.141s
user 0m0.088s
sys 0m0.038s
€ time ls /usr/lib/ >/dev/null
real 0m0.029s
user 0m0.008s
sys 0m0.014s
(Ano, je to sice zhruba pětkrát pomalejší, ale je to dost rychlé na to, aby to bylo dokonale jedno.)
Jdu otestovat tuxcommander. Naposled co sem zkoušel commander Gentoo tak mi přišel hodně dobrej, jen mě odradil hnusný vzhled.
pas
? Trochu problém asi je, že ta konvence jako taková neexistuje, je to spíše jen roztroušená sada různých zvyků pojmenování. GCC si třeba může dovolit dělat nějaké lehké předpoklady na základě jména souboru, ale pro celosystémový obecný nástroj to asi není.
user.mime_type
a říkám, že libmagic
je spolehlivější. I když ani ty MIME typy nejsou samospasitelné.
Rozšířené atributy jsou zabité asi ještě víc než přípony, tím se to myslím moc nevyhraje. Pokud se vůbec nějak dá. Jenom se mi zdá, že ten Thunar neřeší typ souboru nějakým asynchronním způsobem. Podívat se do adresáře a udělat stat nad tím co tam je, to trvá i na hodně velkých adresářích jen chviličku. Ikonky si může vymalovávat potom. To je trochu hloupé.
user.mime_type
? Používání libmagic
pro určování typu souboru je z výkonnostního hlediska absolutní multikill, ale zase to je spolehlivější než podle přípony.
určovat typ podle přípony je špatné.
A není?
BTW: Zkus gprof
.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.