
VisualStudio2005とVisualStudio6を持っていますが、同じアルゴリズムで書かれたプログラムで実行速度が速い順を知りたいのですが
私の主観ですが(抜けているものがありましたら追加してください。)
以下のような予想になります。
VC2005++
VC6++
Delphi
BCC
C#
VC.NET 2005
VB.NET 2005
Visual J++
VisualBasic6
皆さんの意見が知りたいです。(Lispやその他の言語もご存知な場合もよろしく。)
また、アセンブラ(マシン語)の埋め込みができる言語も知りたいです。昔、下のような記述ができた言語があったような記憶がありますが
今でもどの開発ツール(ボーランド社など他のメーカーも含めて)で可能なのでしょうか?
asm{
mov ax, 4000h;
int 0x21;
}
No.2ベストアンサー
- 回答日時:
> 条件は、バブルソートにかかる時間がどの処理系が早いかです。
提示されたソースであれば、Visual C++(ネイティブコードであれば、バージョンはあまり関係ないと思います)が一番高速になりそうです。
同じC/C++でも、最適化性能の関係でBorland C++ Compilerは遅くなります。また、Borland C++ Compilerの場合、C++はCより遅くなる傾向にあります。なお、.NETやJavaはどうしても不利になりますね。
詳しい回答ありがとうございます。ボーランドが遅のは残念ですね。
昔Turbo Pascalの時代で遊んでいた時は、実行速度とは関係ないですが、コンパイルが早いのでファンでしたが、その後コンピュータから離れていましたので、.NETやJavaがわからずなかなかとっつきにくいです。
今、C#とVB.NETを覚えようとしていますが、実行速度はどちらが速いのでしょうか?C#はDelphiに似ているように感じますが、将来Javaも学びたいのでC#の方が(実行速度を考えないと)良いのでしょうか?
No.1
- 回答日時:
> 同じアルゴリズムで書かれたプログラムで実行速度が速い順を知りたいのですが
条件が漠然としすぎている気がします。
確かに、実行速度に最も大きな影響を与えるのはアルゴリズムでしょうが、そこから先はコーディングレベルのテクニックや、言語・処理系の仕様がかなり効いてきます。具体的にどんなコードを比較するのかを明らかにする必要があるでしょう。
たとえば、ニュートン法で整数の平方根を求めるのであれば、C++でテンプレートメタプログラミングによって実装するのが最速(実行時間ゼロなので)です。ところが、同じニュートン法で平方根を求める場合でも、拡張倍精度浮動小数点数を使うのであれば、(インラインアセンブラを使うのでない限り)Visual C++よりDelphiの方が高速になる可能性が高いはずです。
>条件が漠然としすぎている気がします。
そうですね。特殊な計算なら処理系によって有利不利がありますね。
条件は、バブルソートにかかる時間がどの処理系が早いかです。
以下、汚いソースですが、このアルゴリズムでの計測を前提とします。
//準備で共通データ作成
int NumMax = 10000;
int a[NumMax];
// ランダム初期化
for(long i=0; i < NumMax; i++){
a[i] = ランダム値(1から100)
}
で作成した1万個のランダム値の入った配列を作成し、
この同一データを各言語で
10億回バブルソートしてかかった時間などです。
//ここからの時間
int Loop1Max = 10000;
int Loop2Max = 10000;
int b;
for(int lp1=0; lp1<Loop1Max; lp1++){
for(int lp2=0; lp1<Loop2Max; lp2++){
// バブルソート(降順)
for(int i=0; i<NumMax-1; i++){
for(int j=1; j<NumMax; j++){
if(a[i] < a[j]){
b = a[i];
a[i] = a[j];
a[j] = b;
}
}
}
}
}
// ここまで
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語の関数のextern宣言
-
DLLファイルの逆コンパイラにつ...
-
大量のデータを読み込んで表示...
-
【C言語】全角文字の配列を、全...
-
C言語について(初心者)
-
C言語について。
-
c++でテンプレートのコードでわ...
-
C言語について。
-
VisualStudioでC++クラスを追加...
-
Windows Formアプリからコンソ...
-
visual studio 2022でのC#プロ...
-
プログラマー達は何故、プログ...
-
C言語 関数、変数の宣言について
-
c言語のリダイレクトによる円...
-
CPUが16bitでも32bitOSでコンパ...
-
0 == False はいいけど
-
プログラム言語について c言語...
-
C#でログファイルにファイルパ...
-
c言語
-
プログラミングc++を全く分か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
昔のゲーム製作に使用する言語...
-
割り込みベクターをC言語で書...
-
アセンブリ言語からC言語への変...
-
アセンブリ言語について。
-
文系のSE志望です。プログラミ...
-
Windowsはいったい何言語で書か...
-
PICのC言語でキャリーオーバー
-
基礎を終えてから
-
フローチャートを書く書かない
-
言語の実行スピードで早い順に...
-
コンピュータ言語とプログラミ...
-
プログラム言語
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
ライン数とステップ数の違いは?
-
レジストってなんですか?
-
アセンブラからC言語に変換する...
-
シーケンサのデータレジスタD...
-
一般のソフトで画像を扱う場合...
-
ビットシフトってどんな時使うの?
おすすめ情報