0

rad studio 2010 cpp ビルダーを使用しています。新しい SDI アプリケーションを作成し、TCppWebBrowser コントロールと、onclick で TCppWebBrowser の .navigate をトリガーするシンプルなボタンを追加しました。それをコンパイルして、1.20MB のファイルを取得しました。

コンパイルされたexeのサイズを減らすにはどうすればよいですか?

「ランタイムパッケージを使用したビルド」を使用したくありません。それにより非常に小さくなることはわかっていますが、必要なすべてのパッケージと依存関係をexe内に取得したいのですが、使用する以上のものを取得している可能性があります。チェックを外してみました/多くのデザイン パッケージ (プロジェクト/オプション/パッケージ内) を削除しましたが、使用していませんが、ファイル サイズは減少しませんでした。

また、RAD Studio に付属している TForm コンポーネントが必要以上のものを提供し、ファイルが大きくなる可能性があるのではないかと考えていました。 TForm を置き換えるために使用できる最小限のフォーム コンポーネント。

upx のようなパッカーを使用できることはわかっていますが、パッキングする前にサイズを半分程度に縮小したいと考えています。

任意の提案をいただければ幸いです。

4

4 に答える 4

2

このスレッドにはいくつかの提案があります:

于 2010-05-16T04:54:53.593 に答える
1

デバッグ ビルドは、対応するリリース ビルドよりもはるかに大きくなる傾向があります。デバッグ ビルドを行っていない場合は、実行可能ファイルを「ストリッピング」して、バイナリに添付された情報データの最後の痕跡を削除することを検討してください。

于 2010-05-16T03:17:58.427 に答える
1

本当に必要なものが小さな実行可能ファイルである場合は、VCL フレームワークを使用しないでください。小さいファイルサイズが必要な場合は、Windows API を直接使用する必要があります。これにより、フレームワークのオーバーヘッドが回避されます。そのライブラリのすべての機能を使用しない限り、使用するフレームワークに関係なく、オーバーヘッドが発生する可能性が高くなります。VCL のようなフレームワークの全体的な考え方は、小さな実行可能ファイルを生成することではなく、プログラマーとしてアプリケーションをより簡単かつ迅速に開発できるようにすることです。

フレームワークの変更 (または削除) を検討する以外に、考慮すべき事項がいくつかあります。ただし、これらの手法の多くは、コンパイルされた実行可能ファイルのパフォーマンスに悪影響を及ぼす可能性があることに注意してください。フレームワークを使用しないことを選択すると、車輪を再発明しなければならない状況に陥る可能性があります。いわば、コードを間違いに対して脆弱にする可能性があります。したがって、その道を選択する前に結果を比較検討してください。

  • UPXなどの実行可能パッカーを使用すると、実行可能ファイルのサイズが小さくなりますが、パフォーマンスに影響を与える可能性があります。

  • より高速な実行可能ファイルではなく、より小さなファイルサイズに対してコンパイラを最適化することもできます。

  • 小さな実行可能ファイルがどうしても必要な場合は、VCL フレームワークを使用しないことに加えて、RTL を使用せず、メモリ割り当てなどの必要な関数の多くを動的にリンクすることを検討する必要があります。その方法については、ここで良いガイドを見つけることができます:テクニック実行可能ファイルのサイズを小さくするために、実際にはそのページに役立つヒントがたくさんありますが、その一部はここの回答で既に言及されています。

肝心なのは、非常に小さな実行可能ファイルが必要な場合は、より大きなフレームワークを使用すべきではないということです。VCL には使いやすさと拡張性という大きな利点がありますが、スペースの節約にはなりません。

于 2010-05-17T00:37:32.410 に答える
0

選択したライブラリが原因のようです。ライブラリがアプリケーションの最大のコンポーネントである場合、できることはほとんどありません。最も簡単な解決策は、別のライブラリを使用することです。

于 2010-05-16T03:57:14.620 に答える