I decided to try to get this fixed, since its really annoying. So I started slickedit with strace and watched the output.
From the start I didnt have any workspaces or anything open, which I did expect should give me any output at all from strace, but I got constants calls like this, quite fast:
gettimeofday({1205356274, 717581}, {4294967236, 0}) = 0
ioctl(3, FIONREAD,
gettimeofday({1205356274, 774746}, {4294967236, 0}) = 0
gettimeofday({1205356274, 863118}, {4294967236, 0}) = 0
gettimeofday({1205356274, 913724}, {4294967236, 0}) = 0
gettimeofday({1205356274, 917318}, {4294967236, 0}) = 0
ioctl(3, FIONREAD,
gettimeofday({1205356274, 917609}, {4294967236, 0}) = 0
select(4, [3], NULL, NULL, {0, 5000}) = 0 (Timeout)
ioctl(3, FIONREAD,
ioctl(3, FIONREAD,
poll([{fd=3, events=POLLIN}], 1, 0) = 0
ioctl(3, FIONREAD,
gettimeofday({1205356274, 923411}, {4294967236, 0}) = 0
gettimeofday({1205356274, 923555}, {4294967236, 0}) = 0
ioctl(3, FIONREAD,
gettimeofday({1205356274, 923845}, {4294967236, 0}) = 0
select(4, [3], NULL, NULL, {0, 5000}) = 0 (Timeout)
ioctl(3, FIONREAD,
ioctl(3, FIONREAD,
I then opened a workspace, and expanded the first level of a projects tree on the left, and got this output:
2, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
fcntl64(12, F_SETFD, FD_CLOEXEC) = 0
getdents(12, /* 6 entries */, 4096) = 120
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/wcprops", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/.", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/..", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/props", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/prop-base", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/text-base", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents(12, /* 0 entries */, 4096) = 0
close(12) = 0
gettimeofday({1205356127, 946302}, {4294967236, 0}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
gettimeofday({1205356127, 946472}, {4294967236, 0}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=675, ...}) = 0
readlink("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/wcprops", 0xaf836410, 512) = -1 EINVAL (Invalid argument)
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/wcprops", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
gettimeofday({1205356127, 946949}, {4294967236, 0}) = 0
open("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/wcprops/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 12
fstat64(12, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
fcntl64(12, F_SETFD, FD_CLOEXEC) = 0
getdents(12, /* 2 entries */, 4096) = 32
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/wcprops/.", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/wcprops/..", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents(12, /* 0 entries */, 4096) = 0
close(12) = 0
gettimeofday({1205356127, 947562}, {4294967236, 0}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/wcprops", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
gettimeofday({1205356127, 947736}, {4294967236, 0}) = 0
stat64("/home/eric/dev/web.persson.tm/opt/www/persson.tm/sites/misc/samples/xmlrpc/php/.svn/tmp/wcprops/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=675, ...})
Since I dont have lot of experience reading strace output, I can mostly guess. And it seems like its doing a filestat on each file in the path of the project(I have several include with wildcards). It takes a lot of time, since there are about 32000 files below the projects root. I'm also amazed by the repeted calls to /etc/localtime, it seems like that should be kept in memory instead of beeing checked all over for each time, but the kernel should do that anyway, but yet again, guessing here.
I'm using slickedit 12.0.3 on Linux with the latest cumulative hotfixes, downloaded and installed today.
Is there anything else I can provide, or should I just assume that this is how slickedit works, or can I change the config somehow?
/eric