タグ別アーカイブ: 高速化

Windowsのシャットダウンやログオフを高速化

パソコンを終了しようとしても「設定を保存しています」というメッセージが出て、何分も待たされることはありませんか?

この原因の一つとして、ユーザーがログオフを指示しても実行中のプログラムがレジストリを解放してくれず、結果としてユーザー セッションが終了しないことがあります(要するに止めたはずのプログラムが裏で動いている感じ)。

この問題を解消するために『User Profile Hive Cleanup Service』というソフト(サービス)があります。

マイクロソフト ダウンロード センターより入手できます。
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=1b286e6d-8912-4e18-b570-42470e2f3582

設定等は全く必要なく、ただインストールするだけですので、お気軽におためしください。

シェープファイルのサイズを小さくする

ArcVIEWでは、1つのファイルとして扱うシェイプファイルは、エクスプローラーで見てみると、dbf,prj,sbn,sbx,shxなどのファイル群から構成されています。

ArcMap上で、レイヤを右クリックし、テーブルを表示するとズラズラズラズラと不要な属性値が入っていませんか?

CADのdxfファイル等をshpファイルに変換した場合、使わない属性値が沢山付属してくるため、拡張子がdbfのファイルサイズが抜けて大きくなります。

そこで、その属性値(フィールド)を一括で削除する方法を紹介いたします。

ArcToolBoxより、
データ管理ツール > フィールド > フィールドの削除

このコマンド(Delete Field)を使うと、テーブル上では1つづつしか削除できないフィールドを、一気にまとめて削除することができます。

Fortranプログラムの高速化

Fortranプログラムを高速化する手法は、べき乗(A=B**2)を使わずに(A=B*B)とする、配列を効率的に使うなど、数々の手法があるようです。が、プログラマではないので、詳しいことは良く分かりません。

そこで、ちょっと調べてみたところ、たとえば Compaq Visual Fortran では、自動でそのような処理をおこなってくれる機能があることが分かりましたので、まとめておきます。

  1. 普通にプログラムを作る(上記『べき乗』とかは気にしなくて良さそう)
  2. Buildする
  3. ProjectのSettingダイアログを表示
  4. Fortranタブを表示
  5. 『Category:General』で、『Optimization Level:』の値をMaximum Optimizationsに変更する。
  6. 『Category:Code Generationl』で、『Generate Code For:』の値を使用するパソコンに合わせる。ここに載っていないXeonなどの64bitCPUの場合は『Host』にする
  7. 『Category:Optimizations』で、『Processor to Optimize for:』の値を使用するパソコンに合わせる。ここに載っていないXeonやCore2DuoなどのCPUの場合は『Host』にすると良いみたい
  8. OKボタンを押して、Project Settingダイアログを消す
  9. あとは、普通に実行するだけ(!マークを押す)

なにもOptimizeしない場合と比べるとで4分の1くらいに計算時間が激減しました。

なお、上記手順でプログラムが最適化されるのは、コンパイル時のみです。ソースは元のままですので、プロジェクトとして保存しなかった場合は、上記手順を踏み直す必要があります。