2

私は通常、すべてのクラスを作成して、いくつかのタイプを組み合わせます。
たとえば、intとdoubleを組み合わせる場合

public class IntAndDouble{
      public final int INT;
      public final double DOUBLE;
      public IntAndDouble(int i,double d){INT = i; DOUBLE = d;}
}

しばしば小さなものを作成するのとほとんど同じstructです。

しかし、このようなすべての小さなクラスには、最大1KB(300〜1000バイト)のファイルがあり、これらの小さなクラスを10〜15個作成すると、 これは最大jar
30KB増加する可能性があることに気付きました。 jar

30KBがほとんど無視できる実際のJavaでは問題になりますが
、通常のアプリが通常約200KBであるJ2MEでは、30KBが非常に重要です。

J2MEで「小さな構造体」を作成するための最良の方法は何ですか?

4

2 に答える 2

1

メモリ量が少ない非常に古い電話を使用していない限り、「構造体に似た」クラスのコードを保持するために使用されるメモリ量が重要になることはまずありません。

注: 「.class」ファイルのサイズは、クラスのメモリ内フットプリントを反映していません。「.class」ファイルには、クラスがロードおよびリンクされているときにのみ使用される多くのもの (型/メソッド/クラス名とシグネチャなど) が含まれています。その後、通常はガベージ コレクションが行われます。

軽量クラスの実際のメモリ コストがどのくらいかはわかりません (そして、それを測定することもできません) が、あなたが言っているよりも 1 桁少ないと予測したでしょう。

J2ME で「小さな構造体」を作成する最良の方法は何ですか?

ほとんどの場合、IntAndDoubleサンプル クラスで行った方法とまったく同じです。

フィールドの基本型がすべて同じ場合は、代わりに配列を使用できます。たとえばint[]またはObject[]ですが、他の方法で「支払う」ことになります。

(時期尚早の最適化に注意してください!)

于 2013-04-08T11:34:10.410 に答える
0

私たちは、西アフリカや世界の他のローテク地域の非常に弱いデバイスをターゲットにしています。500,000 相当のアプリとデータの合計 (すべてのアプリ) しか処理できない多くのデバイスが見つかりました。これらのタイプのデバイスを使用する世界中のかなりの数の消費者がいます。したがって、超普遍的なものにする場合でも、コードをできるだけ小さくすることを検討します。

于 2013-04-09T18:37:39.137 に答える