[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1876] from OSASK BOARD



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい。


http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3b72bef3_c6f7

From: EIL
Message-ID: 3b72bef3_c6f7
Date: 2001/08/10 01:48
Subject: サイズについて

> 先のご発言で、「あと400Bほど削ることができます」というのがありましたが
>もし削ったあとの正確なファイルサイズが判明しましたら、是非お知らせください。

え〜、Tiny Programsさんに触発されて(^^、もうちょっと削ってみました。
ちょっと裏技的ですが"hello, world"をプログラム領域に置き、変数をスタックに放り込んでdataセクションを無くしました。
それでもヘッダ、code、importの各セクションは無くせないので、
512×3-403(後のNull)=1133バイトがほとんど限界だと思います(TT。
一セクションはファイル上で最小512バイトですし。

また、コードは"hello, world"を含め39バイトになりました。
81バイトの時は
スクリーンのハンドルを取得し変数に保存
"hello, world\0"のアドレスをサブルーチンに渡し、
サブルーチンでは"hello, world\0"の文字数をカウントしてAPI呼び出し
などという、冗長性のあるプログラムを書いていたのを
文字数固定、ハンドル非保存、非サブルーチンなどに切りつめたためです。
いや、exeの最後のセクションはimportなのでファイルサイズには関係しないので、
ファイルサイズ的には大した意味はありませんが。

あと、win32のプログラムはサイズを増やさずに(16ビットの)MS-DOSでの"hellow, world"を内包できる、
ということも忘れないでくださいね(^^。


> 今のところ、APIの比較をどういう着眼点で始めたらいいのか思い付かないの
>で、何もしていません。思い付くまで待っていただくか、もしくは何か提案があ
>ったら教えてください。・・・たとえば文字表示機能とかに限定して、関連API
>を列挙したりすればいいのでしょうかねえ???

プログラマ何人か集めてそれぞれの理想の関数を使ったプログラムを書いてもらい、
それらに近いAPIを持っているものが優秀、というのはどうでしょう。
みんなvoid main(){textedit();}とかで終わりだったらイヤですが(^^。
逆にそれぞれのAPIを使ってプログラムを書いてもらい、
評価を聞くか・・・・・
テキストエディタなどの主要アプリケーションの使用API数で判断、というのも良さそうですが、問題はありますね。
あ〜、難しい。。。。。


あと、guide06を見て思ったことを率直に述べます。
といっても素人なので本当に思っただけのことですが。。。
1.(アセンブラで)使いにくそう
2.(Windowsに比べて)キャッシュミスがごくわずかに増えそう
3.ユーザがシステムワークエリアを指定するのはちょっと・・・・
4.LIB_ControlSoundTrackのfreq?
5.引数の再利用ができる
6.例外発生時のエラー対策ができない?
7.良くも悪くもまとも
高級言語なら吸収できることが多い気もします(^^;;。
最近アセンブラばっかり打ってるからなぁ>自分。


では、失礼しました。