掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
変数の型と計算速度 (ID:45347)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
演算速度に関しては実測してみればいいのではないかと。 ・演算回数を最小にするようなコーディングにする。 (ループの中で変化しない計算式は変数を使ってループの外に出す等) ・使う変数の型の数を最小限に抑える (DWORD と Single しか使わないとか)。 ・乗除算等のコストの掛かる計算はなるべく避ける。 ・可能な限り整数演算しかしない。 なんだかんだ言っても、大昔のプログラミングの参考書に 書いてあったような事が一番効きます (実測すれば判ります)。 record と packed record についてですが、 procedure TForm1.Button1Click(Sender: TObject); type TRec1 = record a: array [0..9] of Boolean; b: array [0..9] of Byte; c: array [0..9] of Integer; d: array [0..9] of Double; end; TRec2 = packed record a: array [0..9] of Boolean; b: array [0..9] of Byte; c: array [0..9] of Integer; d: array [0..9] of Double; end; begin ShowMessage(IntToStr(SizeOf(TRec1))); ShowMessage(IntToStr(SizeOf(TRec2))); end; これがどういう結果になるのかを調べてみてください。 両者の違いはワード/バイトアライメントを行うか否かです。 http://docwiki.embarcadero.com/RADStudio/ja/%E6%A7%8B%E9%80%A0%E5%8C%96%E5%9E%8B http://docwiki.embarcadero.com/RADStudio/ja/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%A1%E3%83%B3%E3%83%88%EF%BC%88Delphi%EF%BC%89 > WinXP,Vista Lazarus1.0.12 の環境で... ・Delphi 使いの皆が皆 Lazarus / FPC を使っているとは限りません。 ・Delphi 使いの皆が皆 Lazarus / FPC に精通しているとは限りません。 ・Delphi と FPC の挙動は異なる事があるため、 Delphi で通用する事が FPC でも通用するとは限りません。 ここは Delphi Q&A なので、FPC での正確な挙動が知りたければ、 Lazarus / FPC のコミュニティでお聞きください。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.