• 締切済み

コンパイラ最適化に関する用語の質問

情報工学に関する論文を書こうとしていますが、どうもしっくりくる言葉を思いつかずに困っています。 あるソースコードがあって、理論的な計算時間がαだったとします。そして、そのコードをコンパイルして実行したとき、コンパイラの最適化によってその実行時間がα/2まで縮めることができたとします。 このとき、情報工学の用語としては、何と呼称するのが学術的にベストでしょうか? 「圧縮率が2倍」、「効率が2倍」、「高速化率が2倍」??? いずれもしっくりときません。 Googleで検索しても引っかかりませんし。 良い考えをお持ちの方がいればお願いします。

  • g47040
  • お礼率55% (125/226)

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.3

No2です。 >できれば、もうちょっと簡潔に○○率という言葉で表現したいです。 なぜですか? 自分で言葉を作ったり、一般的でない言葉を使ったりすると、意味が正しく伝わらない恐れがあります。 世間一般で使われている言葉を使いましょう。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

「最適化により処理時間(or実行時間)が1/2」でしょうね。 「最適化により処理速度が2倍」でもいい。

g47040
質問者

お礼

ありがとうございます。 できれば、もうちょっと簡潔に○○率という言葉で表現したいです。

  • wormhole
  • ベストアンサー率28% (1621/5657)
回答No.1

「コンパイラの最適化」でよい気がしますけど。

g47040
質問者

お礼

ありがとうございます。 ○○率というように、理論上の値からどれだけ時間が短縮されたか、ということを表現したいという意図です。

関連するQ&A

  • GNUコンパイラとIntelコンパイラの違いについて

    今回fortranとC言語で書かれたWindows用プログラムをLinux用に移植することになりました。GNUのコンパイラを使用し無事コンパイルできたので実行したのですが"Segmentation fault"となりうまく実行できませんでした。そこで試しにIntelのコンパイラを使用しコンパイルしてみたところGNUのときとは違い"Segmentation fault"とは出ず、プログラム内のエラーチェックに引っかかり止ってしまいました。同じソースコードにもかかわらず止まる箇所が異なります。 今まで考えたことがなかったのですがGNUとIntelのコンパイラの違いはなんなのでしょうか?また、この二つ以外にいいコンパイラはあるのでしょうか?

  • Cコンパイラについて・・・

    Cコンパイラについてなのですが・・・僕はbroland(ブローランド) の無料コンパイラをダウンロードしてきときと様のCpadのちゃんと対応したやつを使っているのですがコンパイルが実行されず・・・・ エラーが出てしまいます。 時間がありません。誰助けて・・・・

  • コンパイラについて

    C言語初心者です。 コンパイルしたときにたまに出る、タイムスタンプが変更していません??みたいなのが出るときがあるのですが、これって何なのでしょう?? この表示がでたあとは、どう考えても間違っていないプログラムを組んでもコンパイル自体は通るのですが、実行しますとエラー、この情報を機密事項として送信しますか?と、出てしまうのです。 もしかしたら実行エラーしたあとの処理が何も変わってないって意味なのでしょうか??(この後、何をしても 実行時エラーで送信しますか?って出ちゃいます) また、これが出てしまった後どうすれば普通の結果が出せるようになるのでしょう??コンパイラの名前とか書いたほうがよろしいのでしょうか?何か不都合がありましたら補足させていただきます どうかよろしくお願いいたします。

  • コンパイラによってエラーが出たり出なかったり

    構造体をポインタでつなぐリスト構造を使ったソースを書いて、Borland C++ Compiler 5.5 でコンパイルしたものを実行するとエラーで止まってしまいました。 コンパイル時には何も警告が出ませんでした。 しかし、ソースを何度見てもバグらしいコードが見つからなかったので、試しに Microsoft .NET Framework SDK でコンパイルしてみたところ、こちらも警告も出ずにコンパイルが通って、実行してみたらこんどは正常に動作しました。 コンパイラによって、実行時にエラーが出たり出なかったりするということは初めてなのでその原因を知りたくて質問しました。 どういった場合にこのようなことが起こるのでしょうか。 Borland C++ で出たエラーは、おそらくセグメントエラーだと思います。 今のところ正常に動いているのですが、なにかデンジャラスなコードを書いてしまった気がして気持ち悪いです。

  • eclipseの設定のJREとコンパイラの違い

    eclipseの設定で、インストール済みのJREとコンパイラの違いについて教えて いただけないでしょうか。 自分で調べてみた限りでは、、、 インストール済みのJREは、Javaプログラムの実行、デバッグに使用される。 コンパイラは、Javaプログラムのコンパイルに使用される。コンパイラ自体はeclipse 内部のものを使用しており、コンパイラ準拠レベルを指定することにより、指定した Javaのバージョンでコンパイルを行うことが可能。 上記の仕様だと、例えばインストール済みのJREのバージョンを1.6、コンパイラ準拠レベル に1.4を指定したとします。こうした場合、 String s = "hoge"; if(s.isEmpty()) { ・・・・ というコードはコンパイルエラーになるはずです。(String#isEmpty()は1.6から導入) コンパイルエラー⇒クラスができない⇒実行できない、という流れを想定していたの ですが、実際は、エディタ上でエラーになっておらず、コンパイルもでき、実行もできました。 インストール済みのJRE、コンパイラともに1.4を指定すると、エディタ上でエラーに なっていたし、コンパイルも行われていませんでした。 コンパイラ準拠レベルとはいったい???という状態です。 どこかに詳しく説明されているサイトなども教えて頂けるとうれしいです。 宜しくお願いします。 OS:Windows7 HomePremium eclipse:eclipse-jee-indigo-SR1-win32-x86_64.zip

    • ベストアンサー
    • Java
  • コンパイラ:「CPUに最適化された実行コード」の意味とは

    Visual Studioやgccなどの汎用コンパイラに比べて、インテル等のCPUメーカが出しているコンパイラの方が、そのCPUを使ったマシンでは格段に実行速度が速くなると言われます。そのことは概念的にはわかっているつもりなのですが、具体的に、CPUのどのような部分に、どのように適した実行コードが作られて早くなるのかがわかりません。なので理解していないのだと思います。 なにか参考になるページでも構いませんので、情報がありましたら教えて下さい。

  • CとJavaはどのくらいスピードが違うの?

    BorlandのJBuilderなど、Javaもネイティブコードコンパイラがありますよね。質問ですが、 (1) UNIXで動くJavaのネイティブコードコンパイラで優秀なものはあるのでしょうか。 (2) C言語でコンパイルしたプログラムとJavaでネイティブコードコンパイルしたプログラムは、どのくらい速度に差があるのでしょうか? たとえば、Visual Basicも最近のバージョンはネイティブコードコンパイルができますが、C言語で作った同じ論理構造のプログラムに比べて、やはり、かなり実行速度が劣ります。

  • コンパイラのバグ?それとも

    下のようなコードを書いて、たとえば java PossibleCompilerMalfunction Hello のように実行すると、 Hello と表示されることを期待していたのですが、 null と表示されてしまいます。 (JDK1.5を使っています) final String t = args[0]; の部分を final String t = "Hello"; のように書き換えると、 Hello と表示されます。 つまり、コンパイル時に「t」の値が決まっていなければ nullになってしまうようです。 これってコンパイラのバグでしょうか。 あるいは私の考えに間違いがあるのでしたら、 指摘していただけるとありがたいです。 public class PossibleCompilerMalfunction { public static void main(String[] args) { final String t = args[0]; MyClass mc = new MyClass() { void foo() { System.out.println(t); } }; } static abstract class MyClass { MyClass() { foo(); } abstract void foo(); } }

    • ベストアンサー
    • Java
  • Fortranのバージョンアップと古いソースコード

    Fortranは科学技術計算の古い資産が使えるということでまだ使われていると思います。 しかも、コンパイラ・リンカは製品としてバージョンアップしているわけですが、新しくなっても古いコードはコンパイル・リンク・実行できると思っていました。最近、intel fortranの更新をしたのですが、動作がかなり違ってきました。F77,F90,F95などの更新ではなく、intel社の製品としての最新版への更新です。コンパイル・リンクまでは行くのですが、実行させたとたん、ゼロ割のようなメッセージが出て、実行が打ち切られてしまいます。1時間ぐらい走るプログラムなのですが、1秒で打ち切りでした。必ずそうなるということではありません。特定のライブラリで生じます。そのライブラリは古い(言語としてはF77)ので当然ながら新しいコンパイラで動くなどと書いていません。ただソースコードの塊であり、古いコンパイラでは動いていたのです。古いと行っても2009年ぐらいに買ったintel visual fortran ver.11ぐらいのもので2016年のコンパイラと大幅な変更はないはずなのですが。例えば最新版(2016年2月時点)の方は並列関係の設定の方がデフォルトで並列計算しない設定をコンパイラオプションで指定しないとおかしくなるということでしょうか(たぶんGPUには対応していないと思いますが)。どっかに書いてあるかなと思案していますが。 何か心当たりがあればよろしくお願いします。

  • オブジェクト指向コンパイラのインスタンスの構造について

    インタプリタやコンパイラの中身について興味があり勉強しています。といってもまだ簡単な字句解析や構文解析のレベルです。 読んだ本にはオブジェクト指向言語については書かれていませんでした、そこで一つ疑問に思ったこと点について質問させてください。 簡単な言語の場合、使用する変数が宣言されると、その領域がスタックやヒープ空間に確保されるという風に理解しました。 一方オブジェクト指向言語にて、あるクラスのインスタンスを生成した場合を考えます。インスタンスには変数の他に関数やメソッドといった処理手続きが含まれていますよね。その手続きをコンパイルしたコードは何処に置かれているのでしょうか? 手続きのコードもヒープ空間に確保された各インスタンスの領域にコピー(?)されて実行されるのでしょうか。それとも処理手続きの実体は実行プログラムに含まれていて全インスタンスで共通で利用するようになっているのでしょうか。 初心者の素朴な疑問です、ご回答いただければ幸いです。