FORTRAN W
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
650:デフォルトの名無しさん 09/10/28 20:57:22 allocateを使うとパフォーマンスが落ちるって本当ですか? 実際に使われるサイズに関わらず? 651:デフォルトの名無しさん 09/10/29 00:56:45 >>650 多分誤解。 静的配列と比べるならば、それは実行時にアロケート処理するのだから余計な時間はかかるだろう。 しかし、それは計算時間に比べれば瑣末なはず。 POINTERで配列をとった場合は、メモリーの割付が連続したメモリー領域になるとは限らないので 最適化がバリバリなされず、ALLLOCATEでとった場合(連続にメモリーを取る)とくらべて パフォーマンスが落ちる可能性があるとは言われている。 652:651 09/10/29 02:15:09 書き方が悪かった。 POINTERにALLOCATEしたときは連続にメモリーを取るだろうが、 POINTERには、ストライド付きのとびとびメモリーを指示させることもできるので、 最適化には制限が係ることがあるようである。 653:デフォルトの名無しさん 09/10/29 10:15:13 >>651,652 なる〜。Fortran77で i=10000 call hairetu(i) subroutine hairetu(i) integer i real data(i) みたいな使い方で任意の大きさの配列data()をサブルーチン内で扱えるけど、 これがメモリ上でキチンと並んでいるとは限らない(とんだ部分 の取り扱いはOSがするのか?)からね。 77より後のallocatable属性は、出来るだけ連続して確保してね、の おなじないというか願掛けと思えばいいのだろうな。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5215日前に更新/304 KB
担当:undef