Oslavte vydání openSUSE Leap 16.1 s námi v Praze! Ve středu 4. listopadu 2026 (den po vydání Leapu 16.1) vás zveme na malou oslavu vydání openSUSE Leap 16.1 do pražské kanceláře SUSE. Připravili jsme pro vás dvě krátké přednášky: … více »
Dle plánu bylo PHP vydáno v nových verzích 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Opraveny jsou kritické zranitelnosti CVE-2026-109618 a CVE-2026-109619 aneb PHP2Shell.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-2.1 a 24.04-1.5. S opravou kritických zranitelností.
Společnost Škoda Auto zveřejnila na Printables bezplatné 3D modely příslušenství do svých vozů (držáky na nápoje, pomůcky pro vedení kabelů, mincovníky, háčky na USB kabely a čepice pro kapsy na zadních stranách opěradel sedadel, držáky na telefony a úchyty pro horní upevnění bezpečnostních pásů).
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 170 (pdf).
Dnes v 16:00 (14:00 UTC) budou opraveny 2 kritické zranitelnosti s CVSS 9.2 v PHP.
Nizozemská policie 13. října 2026 zabavila v datacentru Amsterdam Science Park server italského poskytovatele internetových služeb Autistici/Inventati (A/I), a to na základě americké žádosti o mezinárodní právní pomoc.… více »
Do 26. října do 18:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | říjen 2026 (YouTube) doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.
Čínská technologická společnost DeepSeek zveřejnila na GitHubu svůj framework DeepInfer, nástroj pro efektivní offline inferenci svého modelu DeepSeek-V4.1-Flash ve velkém měřítku. Software běží na Linuxu a nativně podporuje akcelerátory Nvidia ale i čipy Huawei Ascend 950. Jedná se pouze o samotný inferenční engine, ne kompletní produkční službu. Zdrojový kód je dostupný pod licencí Apache 2.0.
Jelikož padla spousta návrhů na použití std::sort k řazení, učinil jsem tak. Bohužel však nepociťuji ŽÁDNÉ zrychlení. Připadá mi to úplně stejně rychlé.
void FileInfoList::sort( int column, bool ascending )
{
FileInfoComparator fic( column, ascending );
std::sort( begin(), end(), fic );
}
bool FileInfoComparator::operator()( const PFileInfo& fi1, const PFileInfo& fi2 )
{
if( fi1->isDots() ) return true;
if( fi2->isDots() ) return false;
if( fi1->isDir() && !fi2->isDir() ) return true;
if( fi2->isDir() && !fi1->isDir() ) return false;
int cmpRes = 0;
off64_t size1,size2;
time_t date1, date2;
switch( sortColumn )
{
case FileInfoList::COLUMN_NAME:
cmpRes = g_utf8_collate( fi1->getNameTitle().c_str(), fi2->getNameTitle().c_str() );
break;
case FileInfoList::COLUMN_EXT:
cmpRes = g_utf8_collate( fi1->getName().c_str(), fi2->getName().c_str() );
break;
case FileInfoList::COLUMN_SIZE:
fi1->getSize(size1); fi2->getSize(size2);
if(size1>size2) cmpRes = 1;
else if( size2>size1 ) cmpRes = -1;
break;
case FileInfoList::COLUMN_DATE:
fi1->getDate(date1); fi2->getDate(date2);
if(date1>date2) cmpRes = -1;
else if(date2>date1) cmpRes = 1;
break;
case FileInfoList::COLUMN_ATTRS:
cmpRes = g_utf8_collate( fi1->getAttrs().c_str(), fi2->getAttrs().c_str() );
break;
case FileInfoList::COLUMN_OWNER:
cmpRes = g_utf8_collate( fi1->getOwner().c_str(), fi2->getOwner().c_str() );
break;
default:
cmpRes = g_utf8_collate( fi1->getGroup().c_str(), fi2->getGroup().c_str() );
break;
}
if(cmpRes == 0) cmpRes = g_utf8_collate( fi1->getName().c_str(), fi2->getName().c_str() );
if(ascending) cmpRes = -cmpRes;
return (cmpRes > 0);
}
Tiskni
Sdílej:
Někdy nestačí myslet a je třeba vědět.
Kdepak, bez profileru při ladění výkonu nehnu prstem.
. Taky nerad přepisuju kód. o němž 100% nevím, že je to ten kousek, co mě zpomaluje.
stat() nebo lstat()? Pak by mne nepřekvapilo, pokud by problém byl skutečně tady a ne v samotném řazení seznamu.
typedef shared_ptr<PFileInfo> PFileInfoPtr_t; typedef std::vector<PFileInfoPtr_t> fileContainer;
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 ().

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, ...)
return cmpRes == 0;vlastne i to moze byt dovod tej "pomalosti"
)
20:08:39:458 start 20:08:40:419 endsamozrejme, 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.
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 )