このページはEtoJ逐語翻訳フィルタによって翻訳生成されました。

翻訳前ページへ


Language

The 解放する/自由な and Open 生産性 控訴
解放(する)d: Apache OpenOffice 4.1.16

Solaris 業績/成果 問題/発行するs

(米)棚上げする/(英)提議する of contents:


Startup Time

As a base of discussion, build SRC632 was 任命する/導入するd on Solaris two ways, on 地元の disk and on NFS 機動力のある disk, and then timed how long it takes StarOffice to startup. The 金物類/武器類 is a Ultra 10 with a sparcv9 加工業者 operating at 440 MHz and a sparcv9 FPU. RAM is 128MB. The OS is Solaris 2.8.

公式文書,認める: The first of each pair of numbers is the time (in seconds) it takes to "splash" image appears, the second is the time it takes to first 使用/適用 window appears (含むing the first number).


1st time

2nd time

3rd time

4th time

5th time

機動力のある

57/111

13/34

7/25

6/23

6/23

地元の

20/34

6/20

6/20

6/19

6/18

観察s:

  1. There is a big difference between 機動力のある disk and 地元の disk. This is 予定 to the time 要求するd by Solaris to 負担 the 使用/適用 executable, its 株d libraries, and some data とじ込み/提出するs (such as font とじ込み/提出するs) into memory by streaming them across the 網状組織 for NFS 機動力のある 取り付け・設備.
  2. The 初期の invocation takes much longer than その後の invocations, after three invocations, the numbers 安定させる. This is 予定 to (武器などの)隠匿場所ing and memory mapping so that some of the binaries need not be reloaded at その後の invocations.
ーするために 減ずる startup time, it should be very helpful to 減ずる the number and the size of these binary とじ込み/提出するs 存在 負担d. Using truss 命令(する) shows a number of large とじ込み/提出するs were 負担d. By the way, in SRC632 (vs SRC627), many large data とじ込み/提出するs are no longer 負担d, most 株d libraries are わずかに larger, some libraries and some data とじ込み/提出するs are smaller. The に引き続いて is a 名簿(に載せる)/表(にあげる) of とじ込み/提出するs 1 MB or larger:
 15.3MB libsvx632ss.so
 15.1MB libsw632ss.so
  6.3MB libsfx632ss.so
  6.1MB libxo632ss.so
  4.6MB libsvt632ss.so
  4.1MB libvcl632ss.so
  3.9MB liblocaledata_ascii.so
  3.6MB libcfgmgr2.so
  3.0MB libi18n632ss.so
  2.8MB applicat.rdb
  2.5MB libtk632ss.so
  2.2MB libstlport_sunpro.so
  2.1MB liblnn632ss.so
  1.9MB libbasctl632ss.so
  1.7MB libdbtools2.so
  1.6MB libset632ss.so
  1.4MB libso632ss.so
  1.6MB libsvl632ss.so
  1.2MB libsal2.so
  1.1MB libtl632ss.so
  1.1MB libfwk632ss.so
  1.0MB libsb632ss.so

The next step is to find out which of these とじ込み/提出するs need not be 負担d during startup. The data とじ込み/提出するs will be 診察するd later. As for the 株d libraries, the sotruss 命令(する) was tried but did not 産する/生じる useful results. Profiling with gprof, 補助装置d by other ways, was used instead to find out which libraries have no or few symbols invoked. The 要約 results are shown below. The 名簿(に載せる)/表(にあげる) of symbols invoked during startup from each library can be 設立する at this link:

とじ込み/提出する size

library 指名する

number of symbols invoked during startup

15340328

libsvx632ss.so

非常に/多数の

15189324

libsw632ss.so

3 + UNO 構成要素s 負担d 経由で dlsym

6397488

libsfx632ss.so

非常に/多数の

6166124

libxo632ss.so

9

4690244

libsvt632ss.so

非常に/多数の

4390092

libvcl632ss.so

非常に/多数の

3720620

libcfgmgr2.so

非常に/多数の

3069348

libi18n632ss.so

非常に/多数の

2534008

libtk632ss.so

非常に/多数の

2283664

libstlport_sunpro.so

非常に/多数の

2177148

liblnn632ss.so

UNO 構成要素s 負担d 経由で dlsym

1969836

libbasctl632ss.so

13

1773580

libdbtools2.so

1

1685480

libset632ss.so

3

1402200

libso632ss.so

非常に/多数の

1667920

libsvl632ss.so

非常に/多数の

1225464

libsal2.so

非常に/多数の

1099688

libtl632ss.so

非常に/多数の

1158628

libfwk632ss.so

非常に/多数の

1054752

libsb632ss.so

7

As the above (米)棚上げする/(英)提議する shows, four libraries with only a few symbols invoked during startup. The total size of these 4 libraries is about 10MB. Here is a 提案 that may be able to 減ずる startup time which is yet to be proven. We may be able to 分裂(する) the libraries into two libraries. 基本的に we keep the few symbols that are invoked in the 現在の library and link all the remaining symbols into a new library within the same 事業/計画(する). The new library would be built first and the 現在の library would be built. In 新規加入, the 現在の library would be lazily linked against the new library so that other 事業/計画(する)s can still link against the 現在の library to get the symbols in the new library. The lazy linking, however, would defer 負担ing of the new library until after startup. If later we 設立する some libraries that have no symbols that are invoked during startup, we can use lazy linking to defer their 負担ing to after startup.

The splitting of a 株d library is 実験d and worked as we 推定する/予想するd, however, the lazyloading part is not working as we 推定する/予想するd. Work is in 進歩 to find the 原因(となる) and/or workaround. In 新規加入 to splitting a 株d library, it may be possible to 修正する the code so that the symbol invoked during startup don't need to be invoked. This needs to be 診察するd on a symbol by symbol basis and 味方する 影響s needs to be 避けるd.

This work is in 進歩, please stay tuned.

Using the Profiler

We can use the Solaris profiler gprof to find out which symbols of a given 株d library are invoked by the startup executable soffice.貯蔵所 (and javaldx). The に引き続いて are the steps:

  1. We must first dmake 事業/計画(する) desktop with profile=true. Make sure r1.12 (or later 改正) of solenv/inc/unxsols3.mk is used to 避ける a link problem of javaldx where there was a 衝突 の中で /usr/lib, libstlport_sunpro.so and WorkShop 6 profiling libraries. This will produce soffice.貯蔵所 and javaldx executables that were 1linked with the profiling library.
  2. We can then use LD_PROFILE to 始める,決める the 株d library we want to profile. ーするために find out if a 株d library is invoked by startup, the library must not have stripped the symbols using mapfiles. For those libraries that use mapfiles as a default, the SHLnVERSIONMAP=$(TARGET).地図/計画する line in the makefile.mk (usually in util directory) should be commented out (where SHLn may be SHL1, SHL2, etc.) Please 公式文書,認める that LD_PROFILE 許すs to be 始める,決める to one library at a time. When LD_PROFILE is 始める,決める, running soffice and then gprof will result a profile 生産(高) 詳細(に述べる)ing the call graph and the symbols called 統計(学) (see man gprof).
  3. 予定 to profiler's 制限, some 株d libraries (for example, liblnn632ss.so) may appear no symbols that are invoked by the startup executable soffice.貯蔵所, may turned out to be UNO 構成要素s 負担d 経由で dlsym and were not detectable by the profiler. Therefore, we need to 補足(する) the profiling steps with a debug step as follows: use r1.17 or later 改正 of とじ込み/提出する $SRC_ROOT/sal/osl/unx/module.c and dmake $SRC_ROOT/sal with debug=true, then run soffice, we will get a debug trace 生産(高) that 含むs those libraries that have symbols 負担d 経由で dlsym.
  4. There is yet another way of 負担ing symbols, i.e., through UNO. 調査 must be done to 人物/姿/数字 out how these symbols are 負担d. 初期の understanding is that this way of 負担ing is not used during startup (using debug=true to build 橋(渡しをする)s 事業/計画(する)), but it needs to be 立証するd.

The ASF

Copyright & License | Privacy | 接触する Us | 寄付する | Thanks

Apache, OpenOffice, OpenOffice.org and the seagull logo are 登録(する)d trademarks of The Apache ソフトウェア 創立/基礎. The ASF logo is a trademark of The Apache ソフトウェア 創立/基礎. Other 指名するs appearing on the 場所/位置 may be trademarks of their 各々の owners.