[
https://issues.apache.org/jira/browse/DIRSTUDIO-1174?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Seelmann resolved DIRSTUDIO-1174.
----------------------------------------
Resolution: Fixed
Assignee: Emmanuel Lecharny
But now it can be closed :)
> Directory Studio startup very slow due to schema LDIF processing
> ----------------------------------------------------------------
>
> Key: DIRSTUDIO-1174
> URL: https://issues.apache.org/jira/browse/DIRSTUDIO-1174
> Project: Directory Studio
> Issue Type: Bug
> Components: studio-connection
> Affects Versions: 2.0.0-M13
> Environment: openSUSE Linux (installed on my laptop)
> Sun/Oracle Java 1.8.0_111 (previously 1.7 with same issue)
> Apache Directory Studio 2.0.0 M12 and M13, plus earlier milestones too
> Reporter: Aaron Burgemeister
> Assignee: Emmanuel Lecharny
> Priority: Major
> Labels: LDIF, schema, startup-time
> Fix For: 2.0.0-M14
>
> Attachments: 20180415-no-load-schema-ldif-by-default.patch,
> 20180416-dirstudio-1174-fix-a.patch, 20180821-schema-analysis-a.csv.bz2,
> 20180821-schema-analysis-b.csv.bz2,
> schema-9060594b-7c28-4123-b574-35fe09727283.ldif.bz2
>
>
> For the past couple years startup of Apache Directory Studio has slowed down
> to the point where it takes more than a minute on my not-a-slouch laptop to
> start. Other systems, VMs with new installs, start much faster, even on the
> same laptop, implying something other than the base product is at fault. As
> a result, I had suspected maybe Directory Studio slowed down precipitously
> due to the number of stored connections, but never confirmed the same.
> Today I connected strace to the 'java' process as it started and noticed the
> following:
>
> [pid 30108] *1521902717*.154740
> open("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core/schema-ba001fb7-4b83-4dca-be44-517c14139f4b.ldif",
> O_RDONLY) = *-1 ENOENT (No such file or directory)*
> [pid 30108] *1521902717*.154906
> stat("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core",
> \{st_mode=S_IFDIR|0755, st_size=5378, ...}) = 0
> [pid 30108] *1521902717*.154948
> open("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core/schema-95e1202e-9a67-418c-afe9-b02f4e7c06df.ldif",
> O_RDONLY) = *-1 ENOENT (No such file or directory)*
> [pid 30108] *1521902717*.155019
> stat("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core",
> \{st_mode=S_IFDIR|0755, st_size=5378, ...}) = 0
> [pid 30108] *1521902717*.155053
> open("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core/schema-687f43f6-9d05-4d08-b159-35b0e76dc95a.ldif",
> O_RDONLY) = *-1 ENOENT (No such file or directory)*
> [pid 30108] *1521902717*.155120
> stat("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core",
> \{st_mode=S_IFDIR|0755, st_size=5378, ...}) = 0
> [pid 30108] *1521902717*.155154
> open("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core/schema-d62d0e10-c81e-4477-81a2-ac2c9e5c7169.ldif",
> O_RDONLY) = *121*
> [pid 30108] *1521902718*.698702
> stat("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core",
> \{st_mode=S_IFDIR|0755, st_size=5378, ...}) = 0
> [pid 30108] *1521902718*.698800
> open("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core/schema-7b6a9a7c-2192-4b24-8874-1378e5b1b30c.ldif",
> O_RDONLY) = *126*
> [pid 30108] *1521902719*.770570
> stat("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core",
> \{st_mode=S_IFDIR|0755, st_size=5378, ...}) = 0
> [pid 30108] *1521902719*.770660
> open("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core/schema-b3b02838-067f-4f24-bf92-6bf3fccdbc52.ldif",
> O_RDONLY) = *127*
> [pid 30108] *1521902721*.198417
> stat("/home/ab/.ApacheDirectoryStudio/.metadata/.plugins/org.apache.directory.studio.ldapbrowser.core",
> \{st_mode=S_IFDIR|0755, st_size=5378, ...}) = 0
>
> Notice the timestamps (bolded near beginning of line) and how they change
> based on whether or not a schema LDIF file was found (bolded near end of
> line) and, presumably, processed. When a file is not found, subsequent files
> are sought immediately without significantly delaying startup.
> These schema files are all under 1 MiB in size, but most of them are several
> hundred KiBs, approaching the 1 MiB size, so depending on what Directory
> Studio is doing as it reads and processes these files, it would seem that
> this introduces the slowness when a file is found.
> Looking for an existing issue I found DIRSTUDIO-1027 which may be related.
> During startup of Directory Studio one of my laptop's eight cores is fully
> utilized, which makes me think this may be more about processing the LDIF
> than just swapping memory due to inefficient data structures, but I am not a
> memory management expert, so I only mention the possibility here in case it
> helps find the root cause quickly.
> My Directory Studio's total startup time: sixty-one (61) seconds.
> Time spent (per strace) reading schema files: fifty-five (55) seconds.
> Estimated non-schema startup time: six (6) seconds.
>
> Steps to duplicate:
> Have a lot, e.g. 100, of stored schema LDIF files from previous connections.
> Startup Apache Directory Studio.
> Expected results: Startup quickly. Processing old schema LDIFs, when most of
> them will not be used at any given time, seems like a waste of time in
> general. Perhaps this can be done only when a connection is accessed in some
> way rather than at startup.
> Actual results: Slow startup.
> Reproducible: I think so, but am not sure why my system has these schema
> LDIFs when others may not.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)