Performance/OOo31 LibrariesOnStartup
Contents
Libraries loaded on OpenOffice.org 3.1 startup (Windows)
The startup performance of OpenOffice.org is not as good as many people expect. This has several reasons which more or less are based on the long development history. Due to discussion with many people it should be clear that we process too much code during the startup process.I think it's the best way to make the startup much faster if we completely understand what libraries are loaded and why they are used.
My first analysis results strengthen our thesis that too much code (libraries) is involved in the startup process. The following numbers have been retrieved from the build DEV300m40 under Windows. The Microsoft VisualStudio Debugger shows exactly when a library is loaded into the address space of a debugged process. Therefore it's valuable tool to retrieve information about the libraries which are loaded during startup.
Tools for Windows for performance analysis
Microsoft provides several tools to analyze performance problems. Especially for Windows Vista there are the Windows Performance Analysis Tools available for download. The Visual C++ 2008 Express suite provides a very good debugger.
Some statistically information about all the libraries we provide in OpenOffice.org.
Data/Folder | Program | Basis | URE | Sum |
---|---|---|---|---|
Number | 4 | 293 | 50 | 347 |
Size (Bytes) | 2.750.464 | 161.765.640 | 6.677.152 | 171.193.256 |
I use certain measurement points to see what libraries have been loaded by OpenOffice.org:
Measurement point | Total number of libraries loaded (OOo libs) | Percentage of all OpenOffice.org libraries. | Percentage of all OpenOffice.org libraries (size) |
---|---|---|---|
Desktop ctor (Application object created on the stack) | 57 (33) | 9,50 % | 26,14 % |
Desktop::Init (First initializations, e.g. UNO service manager) | 59 (34) | 9,80 % | 26,18 % |
Desktop::Main () just entered | 70 (34) | 13,00 % | 27,59 % |
Desktop::Main (before we enter the main message loop)/StartCenter ready | 98 (70) | 20,20 % | 34,16 % |
Empty Writer document | 129 (93) | 26,80 % | 46,37 % |
Table with the loading order of libraries of OpenOffice.org under Windows
The following table shows when&what libraries are loaded during the OpenOffice.org 3.1 startup.
Order of Loading | Library/Executable | Size |
---|---|---|
001 | soffice.bin | 7.418.368 |
002 | sal3.dll | 1.732.608 |
003 | uwinapi.dll | 86.016 |
004 | sofficeapi.dll | 326.144 |
005 | comphelp4MSC.dll | 948.224 |
006 | cppuhelper3MSC.dll | 431.104 |
007 | salhelper3MSC.dll | 13.824 |
008 | cppu3.dll | 143.360 |
009 | stlport_vc7145.dll | 597.504 |
010 | ucbhelper4MSC.dll | 356.864 |
011 | vos3MSC.dll | 94.208 |
012 | i18nisolang1MSC.dll | 24.576 |
013 | sfxmi.dll | 3.110.912 |
014 | fwemi.dll | 849.408 |
015 | fwimi.dll | 299.008 |
016 | utlmi.dll | 465.920 |
017 | tlmi.dll | 509.952 |
018 | basegfxmi.dll | 572.928 |
019 | vclmi.dll | 3.074.048 |
020 | sotmi.dll | 257.024 |
021 | i18nutilMSC.dll | 67.072 |
022 | icuuc40.dll | 949.760 |
023 | icudt40.dll | 13.912.064 |
024 | svlmi.dll | 724.992 |
025 | svtmi.dll | 2.884.608 |
026 | tkmi.dll | 1.870.336 |
027 | jvmfwk3.dll | 89.088 |
028 | libxml2.dll | 970.752 |
029 | sbmi.dll | 1.310.208 |
030 | xcrmi.dll | 529.920 |
031 | saxmi.dll | 80.384 |
032 | jmi_g.dll | 32.768 |
033 | jvmaccess3MSC.dll | 25.600 |
Desktop ctor | 44.759.552 | |
034 | msci_uno.dll | 52.224 |
Desktop::Init() just entered the method | 44.811.776 | |
035 | bootstrap.dll | 453.632 |
036 | reg3.dll | 99.328 |
037 | store3.dll | 78.336 |
038 | unsafe_uno_uno.dll | 12.800 |
039 | purpenvhelper3MSC.dll | 18.432 |
040 | configmgr2.uno.dll | 1.432.064 |
041 | stocservices.uno.dll | 92.672 |
042 | sysmgr1.dll | 37.888 |
043 | sax.uno.dll | 135.680 |
044 | localebe1.uno.dll | 30.208 |
045 | behelper.uno.dll | 31.232 |
Desktop::Main() just entered the method | 47.234.048 | |
046 | splmi.dll | 148.992 |
047 | ucb1.dll | 197.632 |
048 | fwlmi.dll | 106.496 |
049 | ucpfile1.dll | 245.248 |
050 | fwkmi.dll | 1.879.552 |
051 | dnd.dll | 115.200 |
052 | fileacc.dll | 52.224 |
053 | package2.dll | 248.320 |
054 | fsstorage.uno.dll | 94.208 |
055 | i18npool.dll | 1.235.456 |
056 | icuin40.dll | 1.052.160 |
057 | updchk.uno.dll | 166.912 |
058 | libcurl.dll | 121.344 |
059 | deploymentmi.uno.dll | 266.240 |
060 | deploymentmiscmi.dll | 100.864 |
061 | libdb42.dll | 541.184 |
062 | helplinkermi.dll | 134.144 |
063 | libxslt.dll | 166.400 |
064 | updatefeed.uno.dll | 77.824 |
065 | unoxmlmi.dll | 280.064 |
066 | ucpexpand1.uno.dll | 24.576 |
067 | updchkmi.dll | 48.640 |
068 | resmi.dll | 65.024 |
069 | lngmi.dll | 982.016 |
070 | xomi.dll | 2.898.432 |
Desktop::Main() just before entering the message loop | 58.483.200 | |
071 | oleautobridge.uno.dll | 280.576 |
072 | emsermi.dll | 148.992 |
073 | uuimi.dll | 198.144 |
074 | filterconfig1.dll | 188.416 |
075 | swmi.dll | 7.332.352 |
076 | svxmi.dll | 9.172.992 |
077 | avmediami.dll | 56.832 |
078 | gomi.dll | 295.936 |
079 | drawinglayermi.dll | 802.304 |
080 | canvastoolsmi.dll | 498.176 |
081 | aggmi.dll | 129.024 |
082 | cppcanvasmi.dll | 285.184 |
083 | localedata_euro.dll | 642.048 |
084 | localedata_en.dll | 104.448 |
085 | xstor.dll | 239.616 |
086 | reflection.uno.dll | 99.840 |
087 | guesslangmi.dll | 36.864 |
088 | libtextcat.dll | 14.848 |
089 | introspection.uno.dll | 98.816 |
090 | sysdtrans.dll | 107.008 |
091 | ftrans1.dll | 50.688 |
092 | mcnttype.dll | 33.792 |
093 | ldapbe2.uno.dll | 83.968 |
Empty Writer document up and running | 79.384.014 |
Just to get an idea what the first measurement point "Desktop ctor" means. The following code snippet can be found in the desktop project
extern "C" int soffice_main() { tools::extendApplicationEnvironment(); RTL_LOGFILE_PRODUCT_TRACE( "PERFORMANCE - enter Main()" ); desktop::Desktop aDesktop; // FIRST MEASUREMENT POINT // This string is used during initialization of the Gtk+ VCL module aDesktop.SetAppName( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("soffice")) ); SVMain(); return 0; }
It's obvious to see that several libraries are loaded/used that nobody would think of. Especially sbmi.dll (Basic), sfx2mi.dll (old framework), sotmi.dll are loaded before any initialization is done, even VCL is not inialized yet. There are several other libraries where one can ask why they are used that early in the startup process. This simple analysis already raised many questions that need to be answered.
Table with the loading order of libraries of svdem.exe under Windows
In contrast to the OpenOffice.org executable the following table provides the libraries used by the svdem.exe which is a minimal VCL based application (built in the VCL project).
Order of Loading | Library/Executable | Size |
---|---|---|
001 | svdem.exe | 15360 |
002 | cppuhelper3MSC.dll | 431.104 |
003 | sal3.dll | 1.732.608 |
004 | uwinapi.dll | 86.016 |
005 | salhelper3MSC.dll | 13.824 |
006 | cppu3.dll | 143.360 |
007 | stlport_vc7145.dll | 597.504 |
008 | tlmi.dll | 509.952 |
009 | vos3MSC.dll | 94.208 |
010 | basegfxmi.dll | 572.928 |
011 | iso18nisolangMSC.dll | 24.576 |
012 | comphelp4MSC.dll | 948.224 |
013 | ucbhelper4MSC.dll | 356.864 |
014 | vclmi.dll | 3.074.048 |
015 | sotmi.dll | 257.024 |
016 | utlmi.dll | 465.920 |
017 | i18nutilMSC.dll | 67072 |
018 | icuuc40.dll | 949760 |
019 | icudt40.dll | 13912064 |
SAL_IMPLEMENT_MAIN() entered | 24.252.416 | |
020 | bootstrap.dll | 453.632 |
021 | reg3.dll | 99.328 |
022 | store3.dll | 78.336 |
023 | msci_uno.dll | 52.224 |
024 | unsafe_uno_uno.dll | 12.800 |
025 | purpenvhelper3MSC.dll | 18.432 |
026 | tkmi.dll | 1.870.336 |
Application usable | 26.837.504 |
The following code snippet from svdem.cxx (inside in VCL/workben) shows where the first measurement point is located.
SAL_IMPLEMENT_MAIN() { tools::extendApplicationEnvironment(); // <- First measurement point Reference< XMultiServiceFactory > xMS; xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True ); InitVCL( xMS ); ::Main(); DeInitVCL(); return 0; }
Even the svdem.exe needs to load many OpenOffice.org libraries. This result supports people who report that also svdem.exe has a bad cold startup time. There is one library (icudt40.dll) which has a size that makes up about 50% of the sum of all libraries.
Measurement point | Total number of libraries loaded (OOo libs) | Percentage of all OpenOffice.org libraries. | Percentage of all OpenOffice.org libraries (size) |
---|---|---|---|
SAL_IMPLEMENT_MAIN() entered | 44 (19) | 5,47 % | 14,16% |
svdem.exe up and running | 60 (26) | 7,95 % | 15,68 % |
File I/O during OpenOffice.org startup
It was reported that OpenOffice.org has a high amount of file access during startup. This part wants to analyze what file I/O is done by OpenOffice.org. Under Windows one can use the Microsoft tools from www.sysinternals.com who provides Process Monitor (FileMon is replaced by Process Monitor). Process Monitor provides many more information, especially durations for system calls with a very high timer resolution, than FileMon and therefore is a better tools for our purpose.
Costs of library loading
This chapter tries to figure out what costs are involved in library loading under Windows. As described in the previous chapters OpenOffice.org uses a big number of libraries during startup. Currently it's not really known what does this cost, especially in the cold startup scenario where no libraries could be loaded from the cache.
Process Monitor results - OpenOffice.org cold startup
This snippet below has been directly copied from the output of Process Monitor and shows how the sal3.dll library is opened in OpenOffice.org during startup. This OpenOffice.org startup was done after a reboot of the machine where one can expect that no application libraries are found in the system cache. I did this test with a much slower machine to better see the impact of file I/O (The machine before was 2xOpteron Dual Core with 4GB RAM and fast SAS disk drives).
The machine (a notebook) has the following attributes:
- Intel Pentium M 1.80 GHz
- 1GB RAM
- Windows XP SP3
- Toshiba MK6026GAX 60 GB, 2.5 Zoll - 5400rpm - UDMA100 - 16MB Cache
The cold startup time for OpenOffice.org DEV300M40 on this machine was:
- ~14 seconds (Splash screen visible)
- ~34 seconds (Writer up and running)
Time (hh:mm:ss) Dur. (s) Executable PID TID Function Argument (Path/File/Name) Result -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 11:16:07,6025666 0.0000134 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\Program Files\OpenOffice.org 3\program\sal3.dll NAME NOT FOUND 11:16:07,6027267 0.0000162 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\WINDOWS\system32\sal3.dll NAME NOT FOUND 11:16:07,6028767 0.0000087 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\WINDOWS\system\sal3.dll NAME NOT FOUND 11:16:07,6029854 0.0000128 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\WINDOWS\sal3.dll NAME NOT FOUND 11:16:07,6031072 0.0000100 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\Program Files\OpenOffice.org 3\program\sal3.dll NAME NOT FOUND 11:16:07,6436763 0.0000198 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\Program Files\OpenOffice.org 3\Basis\program\sal3.dll NAME NOT FOUND 11:16:07,6738153 0.0007130 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS AllocationSize: 1.732.608, EndOfFile: 1.732.608, FileAttributes: A 11:16:07,6746442 0.0000126 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\Program Files\OpenOffice.org 3\program\sal3.dll NAME NOT FOUND 11:16:07,6747895 0.0000153 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\WINDOWS\system32\sal3.dll NAME NOT FOUND 11:16:07,6749412 0.0000089 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\WINDOWS\system\sal3.dll NAME NOT FOUND 11:16:07,6750510 0.0000122 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\WINDOWS\sal3.dll NAME NOT FOUND 11:16:07,6751677 0.0000101 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\Program Files\OpenOffice.org 3\program\sal3.dll NAME NOT FOUND 11:16:07,6755242 0.0000126 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\Program Files\OpenOffice.org 3\Basis\program\sal3.dll NAME NOT FOUND 11:16:07,6756639 0.0000067 soffice.bin 3904 3908 FASTIO_NETWORK_QUERY_OPEN C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS AllocationSize: 1.732.608, EndOfFile: 1.732.608, FileAttributes: A 11:16:07,6757971 0.1243334 soffice.bin 3904 3908 IRP_MJ_CREATE C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a, OpenResult: Opened 11:16:07,6758737 0.0212516 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 0, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7227570 0.0003288 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.728.512, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7230998 0.0004252 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.716.224, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7235563 0.0002313 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.724.416, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7240611 0.0002020 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.703.936, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7242740 0.0140059 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.720.320, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7383006 0.0005361 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.708.032, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7579252 0.0158132 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.679.360, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7738479 0.0001095 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.683.456, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7741284 0.0010766 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.712.128, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7752335 0.0005350 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.691.648, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7929455 0.0004247 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.671.168, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,7934040 0.0004101 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.675.264, Length: 4.096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,8000587 0.0000143 soffice.bin 3904 3908 IRP_MJ_CREATE C:\Program Files\OpenOffice.org 3\program SUCCESS Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened 11:16:07,8000814 0.0000120 soffice.bin 3904 3908 IRP_MJ_DIRECTORY_CONTROL C:\Program Files\OpenOffice.org 3\program\soffice.bin SUCCESS Filter: soffice.bin, 1: soffice.bin 11:16:07,8001043 0.0000044 soffice.bin 3904 3908 IRP_MJ_CLEANUP C:\Program Files\OpenOffice.org 3\program SUCCESS 11:16:07,8006798 0.0000028 soffice.bin 3904 3908 FASTIO_QUERY_INFORMATION C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS AllocationSize: 1.732.608, EndOfFile: 1.732.608, NumberOfLinks: 1, DeletePending: False, Directory: False 11:16:07,8008901 0.0000053 soffice.bin 3904 3908 IRP_MJ_CLEANUP C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS 11:16:07,8012776 0.0000000 soffice.bin 3904 3908 Load Image C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Image Base: 0x60100000, Image Size: 0x1ae000 11:16:07,8013036 0.0004350 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.711.104, Length: 1.536, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,8032435 0.0000534 soffice.bin 3904 3908 IRP_MJ_CREATE C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll.2.Manifest NAME NOT FOUND Desired Access: Generic Read/Execute, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, AllocationSize: n/a 11:16:07,8035125 0.0006993 soffice.bin 3904 3908 IRP_MJ_CREATE C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll.2.Config NAME NOT FOUND Desired Access: Generic Read/Execute, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, AllocationSize: n/a 11:16:07,8286051 0.0006755 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 1.679.360, Length: 16.384, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O 11:16:07,8292932 0.0003053 soffice.bin 3904 3908 IRP_MJ_READ C:\Program Files\OpenOffice.org 3\URE\bin\sal3.dll SUCCESS Offset: 172.032, Length: 16.384, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O
If you look at the output from Process Monitor one can stumble that the time stamp from the next function doesn't match or overlaps the previous one + duration. Some functions are processed asynchronously and Process Monitor always logs the duration of a function when a result is available. The output from Process Monitor shows us that libraries are not read in one portion into the address space of a process. There are three different access phases one can see here and which can also be found when looking at other application libraries.
- The first page (4096 bytes) of the library is loaded. This is completely clear as the loader needs to look at the PE header of the library.
- Different parts of the library are loaded which always have the same size (4096 bytes) which also the normal page size of x86 based CPUs.
- At the end data is read with different sizes (e.g. sal3 with 1.536, 16.384 and 16.384 bytes)
It's interesting to see that the sum of durations for the initial part of sal3 needs ~183ms where total elapsed time is ~226ms. So most of the time was used for file operations. It's obvious that more parts of the libraries are loaded into memory whenever more code/data is needed. Therefore it should be clear that the numbers are more the lower bound for library loading. About 180 ms sounds not very much but if we look at the number of libraries we load at startup this can grow to huge times!
The following table tries to show what time is initially spent for all libraries that are loaded during startup. It will help us to see what impact library loading has on cold startup time. If you look at the times you will clearly see that it's not always related to the library size, there must be other parameters which influence it. May be it depends on the number of exports or statics. This must be clarified to know what can we do to improve here.
- See Performance/Startup#ELF_Dynamic_Objects; Sb 15:14, 11 February 2009 (UTC).
Relocations can definitely have an impact but this shouldn't happen for OpenOffice.org as we rebase our libraries. That means that all application libraries are set with an initial load address which doesn't overlap. All relocations inside the library are overwritten to match this load address. If Windows is able to load the library exactly at this load address nothing must be done, otherwise relocations are necessary.
Order of Loading | Library/Executable | Size | Time (ms) to init/load (FileMon) |
---|---|---|---|
001 | soffice.bin | 7.418.368 | 691 |
002 | sal3.dll | 1.732.608 | 183 |
003 | uwinapi.dll | 86.016 | 72 |
004 | sofficeapi.dll | 326.144 | 168 |
005 | comphelp4MSC.dll | 948.224 | 361 |
006 | cppuhelper3MSC.dll | 431.104 | 364 |
007 | salhelper3MSC.dll | 13.824 | 56 |
008 | cppu3.dll | 143.360 | 139 |
009 | stlport_vc7145.dll | 597.504 | 253 |
010 | ucbhelper4MSC.dll | 356.864 | 153 |
011 | vos3MSC.dll | 94.208 | ? |
012 | i18nisolang1MSC.dll | 24.576 | ? |
013 | sfxmi.dll | 3.110.912 | ? |
014 | fwemi.dll | 849.408 | ? |
015 | fwimi.dll | 299.008 | ? |
016 | utlmi.dll | 465.920 | ? |
017 | tlmi.dll | 509.952 | ? |
018 | basegfxmi.dll | 572.928 | ? |
019 | vclmi.dll | 3.074.048 | ? |
020 | sotmi.dll | 257.024 | ? |
021 | i18nutilMSC.dll | 67.072 | ? |
022 | icuuc40.dll | 949.760 | ? |
023 | icudt40.dll | 13.912.064 | ? |
024 | svlmi.dll | 724.992 | ? |
025 | svtmi.dll | 2.884.608 | ? |
026 | tkmi.dll | 1.870.336 | ? |
027 | jvmfwk3.dll | 89.088 | ? |
028 | libxml2.dll | 970.752 | ? |
029 | sbmi.dll | 1.310.208 | ? |
030 | xcrmi.dll | 529.920 | ? |
031 | saxmi.dll | 80.384 | ? |
032 | jmi_g.dll | 32.768 | ? |
033 | jvmaccess3MSC.dll | 25.600 | ? |
Desktop ctor | 44.759.552 | > 2440ms | |
034 | msci_uno.dll | 52.224 | |
Desktop::Init() just entered the method | 44.811.776 | ||
035 | bootstrap.dll | 453.632 | |
036 | reg3.dll | 99.328 | |
037 | store3.dll | 78.336 | |
038 | unsafe_uno_uno.dll | 12.800 | |
039 | purpenvhelper3MSC.dll | 18.432 | |
040 | configmgr2.uno.dll | 1.432.064 | |
041 | stocservices.uno.dll | 92.672 | |
042 | sysmgr1.dll | 37.888 | |
043 | sax.uno.dll | 135.680 | |
044 | localebe1.uno.dll | 30.208 | |
045 | behelper.uno.dll | 31.232 | |
Desktop::Main() just entered the method | 47.234.048 | ||
046 | splmi.dll | 148.992 | |
047 | ucb1.dll | 197.632 | |
048 | fwlmi.dll | 106.496 | |
049 | ucpfile1.dll | 245.248 | |
050 | fwkmi.dll | 1.879.552 | |
051 | dnd.dll | 115.200 | |
052 | fileacc.dll | 52.224 | |
053 | package2.dll | 248.320 | |
054 | fsstorage.uno.dll | 94.208 | |
055 | i18npool.dll | 1.235.456 | |
056 | icuin40.dll | 1.052.160 | |
057 | updchk.uno.dll | 166.912 | |
058 | libcurl.dll | 121.344 | |
059 | deploymentmi.uno.dll | 266.240 | |
060 | deploymentmiscmi.dll | 100.864 | |
061 | libdb42.dll | 541.184 | |
062 | helplinkermi.dll | 134.144 | |
063 | libxslt.dll | 166.400 | |
064 | updatefeed.uno.dll | 77.824 | |
065 | unoxmlmi.dll | 280.064 | |
066 | ucpexpand1.uno.dll | 24.576 | |
067 | updchkmi.dll | 48.640 | |
068 | resmi.dll | 65.024 | |
069 | lngmi.dll | 982.016 | |
070 | xomi.dll | 2.898.432 | |
Desktop::Main() just before entering the message loop | 58.483.200 | ||
071 | oleautobridge.uno.dll | 280.576 | |
072 | emsermi.dll | 148.992 | |
073 | uuimi.dll | 198.144 | |
074 | filterconfig1.dll | 188.416 | |
075 | swmi.dll | 7.332.352 | |
076 | svxmi.dll | 9.172.992 | |
077 | avmediami.dll | 56.832 | |
078 | gomi.dll | 295.936 | |
079 | drawinglayermi.dll | 802.304 | |
080 | canvastoolsmi.dll | 498.176 | |
081 | aggmi.dll | 129.024 | |
082 | cppcanvasmi.dll | 285.184 | |
083 | localedata_euro.dll | 642.048 | |
084 | localedata_en.dll | 104.448 | |
085 | xstor.dll | 239.616 | |
086 | reflection.uno.dll | 99.840 | |
087 | guesslangmi.dll | 36.864 | |
088 | libtextcat.dll | 14.848 | |
089 | introspection.uno.dll | 98.816 | |
090 | sysdtrans.dll | 107.008 | |
091 | ftrans1.dll | 50.688 | |
092 | mcnttype.dll | 33.792 | |
093 | ldapbe2.uno.dll | 83.968 | |
Empty Writer document up and running | 79.384.014 |
FileMon results - OpenOffice.org warm startup
The warm start scenario shows us that there are no read operations in the log. Windows is able to map the code/data of the library to the process without any READ operation. The time consumed for this operation is not measurable with the timer resolution of 15ms.
Time hh:mm:ss:ms Executable:PID Function File Result Options ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 16:30:53.015 soffice.exe:2224 OPEN C:\home\cd\INSTALL\DEV300M40\OPENOFFICE.ORG 3\URE\BIN\SAL3.DLL REPARSE Options: Open Access: Read-Attributes 16:30:53.015 soffice.exe:2224 OPEN C:\home\cd\install\dev300m40\OpenOffice.org 3\program\ REPARSE Options: Open Directory Access: 00100080 16:30:53.015 soffice.exe:2224 OPEN D:\\INSTALL\DEV300M40\OPENOFFICE.ORG 3\PROGRAM SUCCESS Options: Open Directory Access: 00100080 16:30:53.015 soffice.exe:2224 DIRECTORY D:\\INSTALL\DEV300M40\OPENOFFICE.ORG 3\PROGRAM SUCCESS FileDirectoryInformation: soffice.exe 16:30:53.015 soffice.exe:2224 QUERY INFORMATION D:\\INSTALL\DEV300M40\OPENOFFICE.ORG 3\URE\BIN\SAL3.DLL SUCCESS Attributes: A 16:30:53.015 soffice.exe:2224 OPEN C:\home\cd\install\dev300m40\OpenOffice.org 3\URE\bin\sal3.dll REPARSE Options: Open Access: 00100021 16:30:53.015 soffice.exe:2224 OPEN C:\home\cd\install\dev300m40\OpenOffice.org 3\program\ REPARSE Options: Open Directory Access: 00100080 16:30:53.015 soffice.exe:2224 OPEN D:\\INSTALL\DEV300M40\OPENOFFICE.ORG 3\PROGRAM SUCCESS Options: Open Directory Access: 00100080 16:30:53.015 soffice.exe:2224 DIRECTORY D:\\INSTALL\DEV300M40\OPENOFFICE.ORG 3\PROGRAM SUCCESS FileDirectoryInformation: soffice.exe 16:30:53.015 soffice.exe:2224 OPEN D:\\INSTALL\DEV300M40\OPENOFFICE.ORG 3\URE\BIN\SAL3.DLL SUCCESS Options: Open Access: 00100021 16:30:53.015 soffice.exe:2224 CLOSE D:\\INSTALL\DEV300M40\OPENOFFICE.ORG 3\URE\BIN\SAL3.DLL SUCCESS 16:30:53.015 soffice.exe:2224 OPEN C:\home\cd\install\dev300m40\OpenOffice.org 3\URE\bin\sal3.dll.2.Config REPARSE Options: Open Access: 001200A9