2006年04月27日

ホラバグとか

まだ花見会場におるよーこやー。
次のメンテまで定住したろかしら。

ホラバ(ホラーバッグ)実装されたちゅうことで狩りはんとか狩りはんとか狩りはんとかが色々書いてはるみたいやけれど同時にバグも報告されとるみたいやね。
言わんよ!
絶対言わんよ!
バッグだけにバグなんて!

ある一定数超えると重量マイナスになってまうらしいで。
そん数字が32767でこれ超えると重量マイナス1になってまう。
なしてこんな半端な数字なんやろ思たんやけれど師匠はんの話やと当たり前なんやて。
コンピューターて二進数で動いとるちゅうんはうちも知っとるし扱いやすいで十六進数(=2×2×2×2)使うんもプログラムの世界では2×2×2×2×2×2×2×2=256を基準にしとるちゅうんも知っとる。
こん0〜255までを表すのが1バイトやね。
なんか師匠はんがバイトは0〜255とは限らんとか↓ん解釈も正確やないとか言うてはったけれどおおよそ合っとるちゅうことやから無視して引用。
プログラム言語で整数を扱う場合、shortというのがある。
shortというのは2バイトで65536種類の数字を扱う(言語によっては例外あり)。
整数には負数も含まれるため、signedといって―32738〜+32767の数字を表すことが多い。
恐らく32767超えるとバグるというのは、このsinged shortの範囲をオーバーしたためと考えられる。
一方、整数表現にはlongというのもある。
こちらは4バイトで4294967296種類の数字を扱う(言語によっては例外あり)。
これまたsignedの場合、半減するため―2147483648〜+2147483647までの数字を扱う。
TSの場合、所持金のMAXが2ギガなのはこのせいと思われる。
さて、今回のバグを修正する場合、単純にshortで表していた所持力をlongに置き換えればよいわけではない。
なぜなら、この手の単位修正はバグを生みやすい上、メモリー使用量も増大するため、重くなりやすいからだ。
もう1つの解決策としてはunsignedを使う手がある。
unsignedというのは正の整数しか扱わない。
だからunsigned shortは0〜65535までの数字を扱えるため、とりあえず所持量が65535を超えるまでは問題なくなる。
所持量にマイナスはないわけだし。
しかし、最大の問題がある。
今までの経緯から考えてTSが、いわゆるJ2SE(Java 2 Enterprise Edition)というJAVAサーブレットを使用しているっぽい点だ。
実はJAVA言語仕様にはunsignedがないのだw
無いものは利用できないから、今回のバグを修正しようとするなら、shortをlongに置き換えることになるだろう。
すさまじいメモリー使用量増加でラグの嵐+バグの嵐を覚悟したほうがいい。

ちゅうことらしいで。
ほでもバグ直って貰わんと所持極んなる踏ん切りつかんのよね…。
posted by よーこ at 14:41| Comment(6) | TrackBack(0) | トリックスター | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。