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

翻訳前ページへ


Language

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

過度の 株d libraries とじ込み/提出する sizes

最近の 見解/翻訳/版s of OpenOffice/StarOffice 展示(する) an 乱すing 増加する in 株d library とじ込み/提出する size. This is 特に true for the Unix 壇・綱領・公約s, topped by whopping 73% 増加する from SRC569 to SRC624 on Linux.

推論する/理由s

The biggest 増加する in code size 特に on ペルシャ湾岸協力会議 based 壇・綱領・公約s is probably 予定 to the 増加するd use of exceptions. Since abandoning exceptions is out of question we can't do much about this 現在/一般に. It's 利益/興味ing to 公式文書,認める that the use of exception specifications which should in 原則 help 減ずるing the costs of exception 扱うing has a pretty averse 影響 on ペルシャ湾岸協力会議 壇・綱領・公約s. Exception specifications 増加する the code size of callees by a 重要な 量 (up to 300 bytes for ペルシャ湾岸協力会議/Linux/X86 per method!), without having a noticeable 影響 on the code size of the 報知係. Even the empty exception specification throw() 適用するd to a leave (非,不,無 calling) 機能(する)/行事 背負い込むs this cost. This is 明確に a very pronounced 欠陥/不足 of ペルシャ湾岸協力会議.

解答s

  1. 除去する all exception specifications, 特に on all inline 機能(する)/行事s. This seems to be the only possible way to 減ずる the code size of gcc-2.95.2 build libraries 意味ありげに.

    Some 予選 evaluation of gcc-3.0 示すs that the gcc developers noticed this problem. Gcc-3.0 申し込む/申し出s a switch which 許すs the compiler to not to 施行する the exception specifications. Additionally the compiler is much more able in 認めるing that some 機能(する)/行事s will never throw and produces way smaller code in this 事例/患者 even in the 事例/患者 of 栄誉(を受ける)d exception specifications. It might be very worthwhile to switch to gcc-3.0 when it's ready. Gcc-3.0 is scheduled to be 利用できる at the end of the 1Q 2001. The downside of Gcc-3.0 will be that it's in no way binary 両立できる to gcc-2.95.2

    Update 2000/05/28: gcc-2.95.3 (bugfix 解放(する)) seems to produce more compact code in some 事例/患者s. It has not yet been 調査/捜査するd if this 改良 is 関係のある to exception specifications. Anyway, 改良s from 0.4% up to 20% can be 観察するd. 予選 実験(する)s have been done on SRC633, 詳細(に述べる)s can be 設立する here.

  2. 輸出(する) 最小限に減らすd 株d libraries could be smaller on ペルシャ湾岸協力会議/GNU-binutils 壇・綱領・公約s. The GNU ld has a 欠陥/不足 regarding 最小限に減らすing the .dynstr section of a 株d library if 見解/翻訳/版 地図/計画する are used to 最小限に減らす the 輸出(する)s from the library. All it's does is to 除去する the 言及/関連s of the "localized" strings from the .dyntab, but it never 削除するs the strings itself from the .dynstr section. Neither does "(土地などの)細長い一片".

    The Mozilla developers noticed this, too. They invented a small 道具 called "elf-gc-dynstr" which 除去するs the 未使用の strings and than relocates the 言及/関連s to the remaining stuff in the .dyntab section. Some 実験(する)s showed that this 操作/手術 has no 味方する 影響s and does 減ずる the 全体にわたる size of the *.so とじ込み/提出するs by about 2.5% to 3.5%.

    size of all stripped *.so in kBytes

    SRC569

    SRC624

    without elf-gc-dynstr 治療

    116898

    202844

    with elf-gc-dynstr 治療

    114409

    195756

    The more 輸出(する) 最小限に減らすd 株d libraries ( 構成要素s! ) we have the more will be the 全体にわたる 貯金.

    We use elf-gc-dynstr on unxlngi3 since SRC625 b

  3. Patched ペルシャ湾岸協力会議 called "FrankenGCC". Another offshot of Mozilla, can be 設立する here.

    ペルシャ湾岸協力会議 tends to the create a vtable even in the 事例/患者 of a class with only pure 事実上の methods. Another problem is that 確かな inlined static 建設するs 結局最後にはーなる in every 反対する とじ込み/提出する but not in the link-once section. Thus ld fails to 連合させる these 建設するs at 株d library link time.

    I tried the patch but didn't see any 改良 in code size. The opposite was true, the とじ込み/提出する size did even 増加する.


SRC624 stripped libcfgmgr2.so

gcc-2.95.2

frankengcc-2.95.2

library size in kBytes

6084924

6422940



Author: Jens-Heiner Rechtien

Last changed: 16.03.2001

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.