主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

C# VS. IronPython

                
 .NET開発においてIronPythonやIronRubyが使えるようになり、これらスクリプト言語は開発でも徐々に台頭してくるだろう。ここで今の.NET開発のスタンダードであるC#と、IronPythonを簡単に比べてみる。


 IronPythonを選ぶメリットは、変数の宣言と型付けから解放されることだろう。C#を書くときは変数の宣言時に型を指定しなければいけないので、調べる手間が加わる。

 C#を選ぶメリットでIronPythonを選ぶデメリットはなんだろう。プログラムの実行スピードだ。簡単な小数計算で実行時間を比較してみた(コードは記事の末尾に)。差は6倍近く開いた。小数計算以外にも文字列の扱いなどでベンチをとってみるのも面白そうだが、IronPythonがDLRによって逐次コンパイルを行うように実装されていることを考えると、やはりIronPythonは実行速度で劣るだろう。


 C#とIronPythonの実行速度に差があると言っても、IronPythonを使ったアプリケーションが実行に堪えられないわけではない。あくまでC#との実行スピードに大なり小なり差が出るだけの話で、開発パフォーマンス>アプリケーションのパフォーマンスならIronPythonを選ぶ。開発パフォーマンス<アプリケーションのパフォーマンスならC#を選ぶ。そうやって使い分ければいいわけだ。



付録:C# VS. IronPython ベンチコード
using System;
using System.Diagnostics;

namespace CSBench
{
class Program
{
public static void Main(string[] args)
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
float num;
for(long x=0; x<6000000; ++x){
num = (float)x * 3.14F;
}
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
Console.Write(ts);
Console.Write("\n");
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}


import System.Diagnostics

Stopwatch = System.Diagnostics.Stopwatch()
Stopwatch.Start()
for x in xrange(6000000):
num = x * 3.14
Stopwatch.Stop()
print Stopwatch.Elapsed
print "\n"
raw_input()
            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。