View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001832 | Double Commander | Graphical user interface | public | 2017-05-14 14:01 | 2018-10-20 15:18 |
Reporter | CryHam | Assigned To | |||
Priority | high | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Projection | none | ETA | none | ||
Product Version | 1.0.0 (trunk) | Product Build | trunk@7564 | ||
Summary | 0001832: Very slow File Filters - 4 seconds delay to view 24000 files with 123 file filters. | ||||
Description | This happens when I enter a directory which has a lot of files, few thousands at least. And only happens with very many file filters, I have about 123 filters (colors) and 460 extensions (patterns). To put it short: with many file filters processing is a lot slower (like 10 times). I did a few tests (using my build of current trunk): When I enter a directory with 24000 files without any file filters defined, I wait about 1 second for the view to show (on a SSD). This is also the same time Total Commander needs and is okay. If I have only *.jpg files and their file filter is first in list, the issue is not visible at all. But entering this directory with 24000 files, with my list of file filters (in attachment) causes a huge delay of 4 seconds to show the view. This is unacceptable for me. I am pretty sure that significant optimizations can be made to improve this (maybe easily) and reduce the time to probably even 1 second. Total Commander allows only 252 file filters, but even with my list (nearly the same) the delay is still 1 second. So, it stays the same, recognizing lots of file filters in file names surely is optimal there. Current algorithm is also very dependent on which filters are used and how far in list are they. If nothing is found it will take a lot more time compared to when first few filters were used. And the delay grows with more filters in list. My own bigger list causes even 7 seconds delay. Please optimize file filters to reduce the delay. | ||||
Steps To Reproduce | Download attachment with my <FileFilters> section for doublecmd.xml, replace that section in your doublecmd.xml file. Enter a directiory with at least 10000 files. Best with random extensions. Experience a few seconds delay. | ||||
Tags | No tags attached. | ||||
Attached Files | colors.xml (25,852 bytes)
<FileFilters> <Filter> <Name>*.jpg;*.jpeg;*.jpe;</Name> <FileMasks>*.jpg;*.jpeg;*.jpe;</FileMasks> <Color>16765695</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.bat;*.cmd;*.sh;</Name> <FileMasks>*.bat;*.cmd;*.sh;</FileMasks> <Color>7339894</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.exe;*.com;</Name> <FileMasks>*.exe;*.com;</FileMasks> <Color>4128593</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.dll;*.so*;*.hex;</Name> <FileMasks>*.dll;*.so*;*.hex;</FileMasks> <Color>7653888</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.mkv;*.ts;*.vob;</Name> <FileMasks>*.mkv;*.ts;*.vob;</FileMasks> <Color>14443402</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.avi;*.mpg;*.mpeg;*.mpe;</Name> <FileMasks>*.avi;*.mpg;*.mpeg;*.mpe;</FileMasks> <Color>13922955</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.wmv;*.mp4;*.webm;</Name> <FileMasks>*.wmv;*.mp4;*.webm;</FileMasks> <Color>12682126</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.flv;*.rm;*.rmvb;*.asf;*.mov;*.3gp;</Name> <FileMasks>*.flv;*.rm;*.rmvb;*.asf;*.mov;*.3gp;</FileMasks> <Color>10910333</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.h;*.hpp;*.hxx;*Designer.cs;</Name> <FileMasks>*.h;*.hpp;*.hxx;*Designer.cs;</FileMasks> <Color>16742777</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.c;*.cpp;*.cxx;*.cc;*.c++;*.ino;</Name> <FileMasks>*.c;*.cpp;*.cxx;*.cc;*.c++;*.ino;</FileMasks> <Color>16755400</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.cs;*.java;*.py;*.vbs;*.lua;*.json;*.mm;</Name> <FileMasks>*.cs;*.java;*.py;*.vbs;*.lua;*.json;*.mm;</FileMasks> <Color>16747689</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.lib;*.ld;*.cl;</Name> <FileMasks>*.lib;*.ld;*.cl;</FileMasks> <Color>15369373</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.a;*.la;</Name> <FileMasks>*.a;*.la;</FileMasks> <Color>14443402</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.php;*.asp;*.aspx;*.ascx;</Name> <FileMasks>*.php;*.asp;*.aspx;*.ascx;</FileMasks> <Color>14910145</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.pl;*.vb;*.jsp;*.jspx;*.d;</Name> <FileMasks>*.pl;*.vb;*.jsp;*.jspx;*.d;</FileMasks> <Color>11897287</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.sql;*.rb;*.in;</Name> <FileMasks>*.sql;*.rb;*.in;</FileMasks> <Color>9150168</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.vert;*.glsl;*.vsh;*.cg;*.shd;*.glsles;</Name> <FileMasks>*.vert;*.glsl;*.vsh;*.cg;*.shd;*.glsles;</FileMasks> <Color>1164031</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.frag;*.hlsl;*.psh;*.fx;*.shader;*.program;</Name> <FileMasks>*.frag;*.hlsl;*.psh;*.fx;*.shader;*.program;</FileMasks> <Color>1170431</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>.git*;.hg*;</Name> <FileMasks>.git*;.hg*;</FileMasks> <Color>11690849</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>.svn;cvs;</Name> <FileMasks>.svn;cvs;</FileMasks> <Color>11690849</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>*.obj;*.class;*.o;*.elf;*.less;</Name> <FileMasks>*.obj;*.class;*.o;*.elf;*.less;</FileMasks> <Color>12875833</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.m;*.tlh;*.def;*.idl;*.odl;</Name> <FileMasks>*.m;*.tlh;*.def;*.idl;*.odl;</FileMasks> <Color>11770624</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>cmakelists.txt;*.cmake;</Name> <FileMasks>cmakelists.txt;*.cmake;</FileMasks> <Color>12682561</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>cmake*.txt;*.make;*.*cache;</Name> <FileMasks>cmake*.txt;*.make;*.*cache;</FileMasks> <Color>12617325</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.lst;*.lss;</Name> <FileMasks>*.lst;*.lss;</FileMasks> <Color>13998956</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.patch;*.diff;</Name> <FileMasks>*.patch;*.diff;</FileMasks> <Color>16090219</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.pdb;</Name> <FileMasks>*.pdb;</FileMasks> <Color>15439440</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.rc;*.res;*.resx;*.inl;*.resources;*.qrc;*.blend?;</Name> <FileMasks>*.rc;*.res;*.resx;*.inl;*.resources;*.qrc;*.blend?;</FileMasks> <Color>10369155</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.ncb;*.pch;*.ilk;*.sdf;</Name> <FileMasks>*.ncb;*.pch;*.ilk;*.sdf;</FileMasks> <Color>11154783</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>ipch;</Name> <FileMasks>ipch;</FileMasks> <Color>11154783</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>*.user;*.suo;</Name> <FileMasks>*.user;*.suo;</FileMasks> <Color>12537936</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.idb;*.exp;*.aps;*.sbr;*.tlog;</Name> <FileMasks>*.idb;*.exp;*.aps;*.sbr;*.tlog;</FileMasks> <Color>10702928</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.linkinfo;*.filters;*.opensdf;*.internal;thumbs.db;</Name> <FileMasks>*.linkinfo;*.filters;*.opensdf;*.internal;thumbs.db;</FileMasks> <Color>10571856</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.dsp;*.dsw;*.bpr;*.cbp;*.workspace;*.desktop;</Name> <FileMasks>*.dsp;*.dsw;*.bpr;*.cbp;*.workspace;*.desktop;</FileMasks> <Color>7171420</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.bak;*.bash;*.tmp;*.dmp;*.map;*.sym;</Name> <FileMasks>*.bak;*.bash;*.tmp;*.dmp;*.map;*.sym;</FileMasks> <Color>8421504</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.old;*.default;makefile*;*.mk;</Name> <FileMasks>*.old;*.default;makefile*;*.mk;</FileMasks> <Color>10395294</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.sln;*.pro;*.dev;</Name> <FileMasks>*.sln;*.pro;*.dev;</FileMasks> <Color>16771827</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.vcproj;*.vcxproj;*.vsix;*.ino;</Name> <FileMasks>*.vcproj;*.vcxproj;*.vsix;*.ino;</FileMasks> <Color>16769226</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.csproj;*.sldprt;</Name> <FileMasks>*.csproj;*.sldprt;</FileMasks> <Color>16765098</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.png;</Name> <FileMasks>*.png;</FileMasks> <Color>12093879</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.bmp;*.pcx;*.tga;*.rgb;</Name> <FileMasks>*.bmp;*.pcx;*.tga;*.rgb;</FileMasks> <Color>12616447</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.gif;*.tif;*.svg;*.psd;*.pdn;</Name> <FileMasks>*.gif;*.tif;*.svg;*.psd;*.pdn;</FileMasks> <Color>6776798</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.ico;*.cur;*.ani;*.xcf;</Name> <FileMasks>*.ico;*.cur;*.ani;*.xcf;</FileMasks> <Color>2697664</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.x;*.mesh;*.x_t;</Name> <FileMasks>*.x;*.mesh;*.x_t;</FileMasks> <Color>8388863</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>model*;</Name> <FileMasks>model*;</FileMasks> <Color>8388863</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>*.blend;*.max;*.3ds;</Name> <FileMasks>*.blend;*.max;*.3ds;</FileMasks> <Color>11293183</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.dds;</Name> <FileMasks>*.dds;</FileMasks> <Color>15427307</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>texture*;</Name> <FileMasks>texture*;</FileMasks> <Color>15427307</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>*.flac;*.ape;*.wv;*.sound;</Name> <FileMasks>*.flac;*.ape;*.wv;*.sound;</FileMasks> <Color>16756906</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.wav;*.pcm;</Name> <FileMasks>*.wav;*.pcm;</FileMasks> <Color>16748945</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.mp3;</Name> <FileMasks>*.mp3;</FileMasks> <Color>16756250</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.ogg;*.mpc;*.wma;</Name> <FileMasks>*.ogg;*.mpc;*.wma;</FileMasks> <Color>14325046</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.mod;*.it;*.xm;*.stm;*.s3m;</Name> <FileMasks>*.mod;*.it;*.xm;*.stm;*.s3m;</FileMasks> <Color>13998956</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.m3u*;*.cue;*.plc;*.pls;</Name> <FileMasks>*.m3u*;*.cue;*.plc;*.pls;</FileMasks> <Color>16087391</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.htm;*.html;*.shtml;*.mht;</Name> <FileMasks>*.htm;*.html;*.shtml;*.mht;</FileMasks> <Color>16284673</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.js;*.css;</Name> <FileMasks>*.js;*.css;</FileMasks> <Color>14053907</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.xsd;*.xdr;*.xsl;*.xslt;</Name> <FileMasks>*.xsd;*.xdr;*.xsl;*.xslt;</FileMasks> <Color>13421568</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.ps*;</Name> <FileMasks>*.ps*;</FileMasks> <Color>13421568</Color> <Attributes></Attributes> </Filter> <Filter> <Name>*.xml;*.yml;*.yaml;*.xaml;*.qml;*.layout;</Name> <FileMasks>*.xml;*.yml;*.yaml;*.xaml;*.qml;*.layout;</FileMasks> <Color>16763788</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.url;*.rdp;descript.ion;</Name> <FileMasks>*.url;*.rdp;descript.ion;</FileMasks> <Color>16768185</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.set;*.sav;*.settings;*.ui;*.conf;*.part;</Name> <FileMasks>*.set;*.sav;*.settings;*.ui;*.conf;*.part;</FileMasks> <Color>16760704</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.cfg;*.out;*.config;*.scheme;*.prefs;*.vssettings;*.epf;</Name> <FileMasks>*.cfg;*.out;*.config;*.scheme;*.prefs;*.vssettings;*.epf;</FileMasks> <Color>11049728</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.mdl;*.dwg;*.dwt;*.dxf;*.mnu;</Name> <FileMasks>*.mdl;*.dwg;*.dwt;*.dxf;*.mnu;</FileMasks> <Color>2610793</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.lnk;*.cpl;</Name> <FileMasks>*.lnk;*.cpl;</FileMasks> <Color>13041606</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.dir;*.fnt;*.mat;*.ahk;*.tex;</Name> <FileMasks>*.dir;*.fnt;*.mat;*.ahk;*.tex;</FileMasks> <Color>13434743</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.msi;*.theme;*.material;*.mtl;*.clr;*.srt;</Name> <FileMasks>*.msi;*.theme;*.material;*.mtl;*.clr;*.srt;</FileMasks> <Color>11980921</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.iso;*.img;*.bin;*.nrg;*.mdf;*.vdi;*.vhd;</Name> <FileMasks>*.iso;*.img;*.bin;*.nrg;*.mdf;*.vdi;*.vhd;</FileMasks> <Color>13565928</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.7z;*.rar;*.jar;</Name> <FileMasks>*.7z;*.rar;*.jar;</FileMasks> <Color>10532608</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.zip;*.cab;*.pak;*.rpm;*.deb;</Name> <FileMasks>*.zip;*.cab;*.pak;*.rpm;*.deb;</FileMasks> <Color>8623360</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.tar;*.gz;*.tgz;*.bz2;*.ace;*.arj;*.err;</Name> <FileMasks>*.tar;*.gz;*.tgz;*.bz2;*.ace;*.arj;*.err;</FileMasks> <Color>10460249</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.ini;*.reg;*.dat;*.lng;*.bar;*.raw;*.msc;*.rgs;</Name> <FileMasks>*.ini;*.reg;*.dat;*.lng;*.bar;*.raw;*.msc;*.rgs;</FileMasks> <Color>8101471</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.log;*.trk;*.properties;</Name> <FileMasks>*.log;*.trk;*.properties;</FileMasks> <Color>7446392</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.sys;*.drv;*.vxd;*.ocx;*.tlb;*.acm;</Name> <FileMasks>*.sys;*.drv;*.vxd;*.ocx;*.tlb;*.acm;</FileMasks> <Color>4684874</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.txt;*.nfo;*.diz;*.md;*.wiki;*.markdown;</Name> <FileMasks>*.txt;*.nfo;*.diz;*.md;*.wiki;*.markdown;</FileMasks> <Color>54698</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.odt;*.doc;*.docx;*.rtf;*.nsi;</Name> <FileMasks>*.odt;*.doc;*.docx;*.rtf;*.nsi;</FileMasks> <Color>129216</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.inf;*.isu;*.po;*.uninstall;</Name> <FileMasks>*.inf;*.isu;*.po;*.uninstall;</FileMasks> <Color>52171</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.ods;*.xls;*.xlsx;*.font;*.fon;*.pot;</Name> <FileMasks>*.ods;*.xls;*.xlsx;*.font;*.fon;*.pot;</FileMasks> <Color>3255982</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.pdf;*.dae;</Name> <FileMasks>*.pdf;*.dae;</FileMasks> <Color>326143</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.ttf;*.otf;*.ttc;</Name> <FileMasks>*.ttf;*.otf;*.ttc;</FileMasks> <Color>9958143</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.hlp;*.ch?;</Name> <FileMasks>*.hlp;*.ch?;</FileMasks> <Color>2993151</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.odp;*.ppt;*.pptx;*.pps;*.cnt;</Name> <FileMasks>*.odp;*.ppt;*.pptx;*.pps;*.cnt;</FileMasks> <Color>9150168</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.lfm;*.dfm;*.asm;*.s;*manifest;readme;license;</Name> <FileMasks>*.lfm;*.dfm;*.asm;*.s;*manifest;readme;license;</FileMasks> <Color>39797</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.pas;*.pp;*.v;*.vhd;*.pif;*.csv;</Name> <FileMasks>*.pas;*.pp;*.v;*.vhd;*.pif;*.csv;</FileMasks> <Color>46774</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.lrt;*.ppu;*.dep;*.dcu;*.dof;*.dcr;</Name> <FileMasks>*.lrt;*.ppu;*.dep;*.dcu;*.dof;*.dcr;</FileMasks> <Color>27242</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.lpk;*.lpi;*.lps;*.dcp;*.bpl;*.inc;</Name> <FileMasks>*.lpk;*.lpi;*.lps;*.dcp;*.bpl;*.inc;</FileMasks> <Color>18329</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>*.lpr;*.dpr;*.dpk;*.bpk;*.fig;</Name> <FileMasks>*.lpr;*.dpr;*.dpk;*.bpk;*.fig;</FileMasks> <Color>28897</Color> <Attributes>-*</Attributes> </Filter> <Filter> <Name>CMakeFiles;cmake;</Name> <FileMasks>CMakeFiles;cmake;</FileMasks> <Color>12617325</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>*debug*;debug*;boot;root;</Name> <FileMasks>*debug*;debug*;boot;root;</FileMasks> <Color>27242</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>*release*;release*;RelWith*;</Name> <FileMasks>*release*;release*;RelWith*;</FileMasks> <Color>39797</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>install;</Name> <FileMasks>install;</FileMasks> <Color>3255982</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>source;src;local;</Name> <FileMasks>source;src;local;</FileMasks> <Color>16755400</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>lib*;</Name> <FileMasks>lib*;</FileMasks> <Color>15369373</Color> <Attributes>l*</Attributes> </Filter> <Filter> <Name>lib*;Properties;</Name> <FileMasks>lib*;Properties;</FileMasks> <Color>15369373</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>vid*;vc*;</Name> <FileMasks>vid*;vc*;</FileMasks> <Color>16676518</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>common;sound*;wav;</Name> <FileMasks>common;sound*;wav;</FileMasks> <Color>16748945</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>include;inc;</Name> <FileMasks>include;inc;</FileMasks> <Color>16742777</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>obj;transl*;</Name> <FileMasks>obj;transl*;</FileMasks> <Color>12875833</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>srv;*script*;lost*;bullet*;</Name> <FileMasks>srv;*script*;lost*;bullet*;</FileMasks> <Color>13998956</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>css;tpl;audio*;</Name> <FileMasks>css;tpl;audio*;</FileMasks> <Color>16692869</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>home;tools;</Name> <FileMasks>home;tools;</FileMasks> <Color>16765098</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>etc;set*;conf*;layout*;</Name> <FileMasks>etc;set*;conf*;layout*;</FileMasks> <Color>16760704</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>software*;</Name> <FileMasks>software*;</FileMasks> <Color>16762391</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>theme*;skin*;sky*;</Name> <FileMasks>theme*;skin*;sky*;</FileMasks> <Color>16756250</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>dist*;network*;</Name> <FileMasks>dist*;network*;</FileMasks> <Color>15439440</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>sdl*;sfml*;</Name> <FileMasks>sdl*;sfml*;</FileMasks> <Color>14325046</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>usr;user*;share;cs;</Name> <FileMasks>usr;user*;share;cs;</FileMasks> <Color>13421568</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>tmp;temp;test*;</Name> <FileMasks>tmp;temp;test*;</FileMasks> <Color>8421504</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>windows*;*volume*;</Name> <FileMasks>windows*;*volume*;</FileMasks> <Color>4684874</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>driv*;</Name> <FileMasks>driv*;</FileMasks> <Color>8101471</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>bin*;builds;plugins;run*;system*;edit*;</Name> <FileMasks>bin*;builds;plugins;run*;system*;edit*;</FileMasks> <Color>4128593</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>log;nx*;nv*;locale;lang*;qt*;level*;terrain*;</Name> <FileMasks>log;nx*;nv*;locale;lang*;qt*;level*;terrain*;</FileMasks> <Color>2610793</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>sbin;Program*;Microsoft*;util*;</Name> <FileMasks>sbin;Program*;Microsoft*;util*;</FileMasks> <Color>7653888</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>var;pack*;</Name> <FileMasks>var;pack*;</FileMasks> <Color>10532608</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>python*;Redist*;recovery;</Name> <FileMasks>python*;Redist*;recovery;</FileMasks> <Color>8623360</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>cache;</Name> <FileMasks>cache;</FileMasks> <Color>11500154</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>sdk*;</Name> <FileMasks>sdk*;</FileMasks> <Color>16771827</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>example*;sample*;*demo*;</Name> <FileMasks>example*;sample*;*demo*;</FileMasks> <Color>16765695</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>images;scre*;</Name> <FileMasks>images;scre*;</FileMasks> <Color>16759778</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>htdocs;wp-content;</Name> <FileMasks>htdocs;wp-content;</FileMasks> <Color>14910145</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>admin;*power*;preview*;</Name> <FileMasks>admin;*power*;preview*;</FileMasks> <Color>12093879</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>dev;display;font*;udev;proc;</Name> <FileMasks>dev;display;font*;udev;proc;</FileMasks> <Color>13565928</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>doc*;mnt;pages;wiki;sys;</Name> <FileMasks>doc*;mnt;pages;wiki;sys;</FileMasks> <Color>129216</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>opt;proj*;depend*;object*;</Name> <FileMasks>opt;proj*;depend*;object*;</FileMasks> <Color>326143</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>media;data;shade*;effect*;</Name> <FileMasks>media;data;shade*;effect*;</FileMasks> <Color>1825532</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>boost*;addon*;module*;</Name> <FileMasks>boost*;addon*;module*;</FileMasks> <Color>7918334</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>run*;gui*;gtk*;</Name> <FileMasks>run*;gui*;gtk*;</FileMasks> <Color>2993151</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>Dir</Name> <FileMasks>*;</FileMasks> <Color>16774090</Color> <Attributes>d*</Attributes> </Filter> <Filter> <Name>Link</Name> <FileMasks>*;</FileMasks> <Color>13041606</Color> <Attributes>l*</Attributes> </Filter> <Filter> <Name>Exe</Name> <FileMasks>*;</FileMasks> <Color>4128593</Color> <Attributes>-*x*</Attributes> </Filter> </FileFilters> | ||||
Fixed in Revision | 7720 | ||||
Operating system | Windows | ||||
Widgetset | Win32 | ||||
Architecture | 64-bit | ||||
|
Perhaps this could speed it up: - sorting list first by extension - for each file: go through file filters until one matches, saving which one did - for next file: first trying saved file filter, if it matched, go to next file (if not, go through rest of file filters, should usually only happen on extension change) - sorting again by what user has picked, but using saved colors Just a draft, probably not exact, but may be faster. |
|
Such algorithm cannot be used. Because coloring can be doing using other parameters (time, attributes, etc.), not only by extension. |
|
I tested a recent build of doublecmd-0.9.0.r7833.x86_64-win64.7z 2017.10.07 09:16:30. This works now way faster (about 2x) and I think it's fixed. When entering a directory (actually Ctrl-B flat view) of 68k files: old version needs 18sec to show list, and new version about 9sec. For a smaller directory of 23k files new takes about 3sec and old 6sec. This is great, thank you. |
|
OP confirmed it fixed |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-05-14 14:01 | CryHam | New Issue | |
2017-05-14 14:01 | CryHam | File Added: colors.xml | |
2017-08-02 21:50 | CryHam | Note Added: 0002314 | |
2017-08-07 07:40 | Alexx2000 | Fixed in Revision | => 7720 |
2017-08-07 07:48 | Alexx2000 | Note Added: 0002315 | |
2017-08-07 07:48 | Alexx2000 | Status | new => acknowledged |
2017-10-16 17:32 | CryHam | Note Added: 0002379 | |
2018-10-20 15:18 | w2017 | Note Added: 0002805 | |
2018-10-20 15:18 | w2017 | Status | acknowledged => closed |
2018-10-20 15:18 | w2017 | Resolution | open => fixed |