* Javaとのサイズ対決 -(by [[K]], 2013.08.26) ** (0) 前提 -javacでは-g:noneを付ける。 -classファイルはtek5圧縮をするし、しかも23を引いてやる。 --23を引く根拠: 1バイトのファイルをtek5圧縮したら23バイトになったので、tek5のヘッダなどで23があるとした。 --jarにしないのは、tek5のほうが圧縮力が高いため。 ~ -他のものはそういう優遇措置は一切なし。 ** (1) 対決 -none: (何もしないプログラム) --''OSECPU'': 3バイト --''Java'': 119バイト -hello: --''OSECPU'': 15バイト(app0035) --''Java'': 200バイト --MS-DOS: 24バイト --「はりぼてOS」: 79バイト --第二世代OSASK: 16バイト --第二世代OSASK: 17バイト -chars: --''OSECPU'': 8バイト(app0036) --''Java'': 229バイト --第二世代OSASK: 13バイト -japan: (日本の国旗を描画) --''OSECPU'': 20バイト(app0087) --''Java'': 220バイト -gradation: --''OSECPU'': 13バイト(app0020) --''Java'': 270バイト --第一世代OSASK: 327バイト -bball: --''OSECPU'': 71バイト(app0023) --''Java'': 518バイト(色を白固定にしても493) --「はりぼてOS」: 350バイト --第一世代OSASK: 186バイト -invader: --''OSECPU'': 507バイト(app0088) --「はりぼてOS」: 1509バイト --第一世代OSASK: 1108バイト ** (2) 議論 -http://www.cqpub.co.jp/interface/toku/200012/toku1_2.htm によると バイトコードは,Javaの設計当初からネットワーク経由によるプログラムの配信を考慮し,その名のとおりコンパクトに設計されています. -とのことなので、比較するのに不適当ではないと思う。しかし・・・OSECPUの強さは圧倒的ではないか!個人が作っているのものにこんなに簡単に負けていいのか? ~ -noneを作って比較したのは、ヘッダというか最初のオマジナイ的なものがサイズを食っているのかどうかを確認したかったため。・・・それで比べてみると、どうもそういうわけでもないらしい。 ~ -bballでの増加傾向とかを見ると、ロジックの増加に伴い、Javaはハイペースでサイズが増えてしまう。これじゃあ大規模になればJavaが有利になるという期待もできない。 --gradation→bballで比較すると: ---OSECPU: +58の増加 ---Java: +223の増加 ~ -というかJavaがこの程度なら、第二世代OSASK(efg01)にグラフィックス拡張をくっつけたものを作ったとしても、正直負ける気がしない・・・。OSECPUを持ち出すまでもない感じ。 * こめんと欄 -一応javaを養護しておくと、javaはクラス名やメソッドのシグネチャも全部文字列で格納されているのでものすごく小規模なプログラムでは名前の情報をカットしてシステムコールを番号で呼び出せるelf等よりサイズ的に不利です -- ''neri'' SIZE(10){2013-08-27 (火) 01:47:06} -なるほど・・・Javaはサイズ重視という割には、詰めが甘いなあ・・・。情報どうもありがとうございます!確かにダンプすると文字列がいろいろ見えます。 -- ''K'' SIZE(10){2013-08-27 (火) 11:57:37} #comment