TeraOmegaNetwork 2.0
<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

macでVS2010
iPadでVS2010
ミニノートPCでVS2010
C# 3.0 LINQ Sort
ぱられる。ふぉー
Parallel.For
C#4.0 続2 Parallelクラス
C#4.0 続 Parallelクラス
Internet Explorer の検索ボックスを表示しない
2010年度になりました

プログラミング
・C#
・C/C++
・Java
・Visual Basic
・Visual Basic .NET
・色々な言語
・メモ
管理人の落書き
リンク
テンプレート作成支援言語
IEAuto
クラス設計






Web デベロッパー

必要科目
70-536
70-528
70-547



・Sun認定Javaプログラマー(SJC-P 035)
・OracleSilverFaeroe 9i
・UMTP Lv1
・基本情報技術者


・セキュリティスペシャリスト合格
・テンプレート作成支援言語(T言語)を広める事

  お勧め1「テンプレート作成支援言語(T言語)」ver 1.1.1         20010/02/26 更新
テンプレート作成支援言語について
ダウンロードする。

お勧め2「ブラウザ自動操作ツール(IEAuto2009)」ver 1.6.1    20010/03/25 更新
ブラウザ自動操作ツール(IEAuto 2009)について
ダウンロードする。

お勧め3
「データベース更新前更新後比較ツール(DBCMP) Oracle接続可」ver 1.4.0  20010/03/14 新規公開
ダウンロードする。

プログラミング - C#
Javaと比較(ジェネリックのパフォーマンス)

サブカテゴリをJavaにしたら、C#との比較ですねw

ジェネリック情報をコンパイル後も保持するC#と保持しないJavaでパフォーマンスが
どれだけ違うのか計ってみました。
細かい内容は、『まじかんと』様のページにいろいろ載っています。
http://homepage2.nifty.com/magicant/programmingmemo/genericsjavavscs.html



C# Ver
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
using System.Collections.Generic;

public class CsVer {
    private const int MAX = 1000000;
    
    public static void Main(string[] args) {

        List <string> lst  = new List <string>(MAX);
        List <string> lst2 = new List <string>(MAX);

        long start = System.Environment.TickCount;

        //溜め込む
        for (int i = 0; i < MAX; i++) {
            lst.Add("てすと");
        }

        //転記する
        foreach (string str in lst) {
            lst2.Add(str);
        }
        
        long stop = System.Environment.TickCount;
        System.Console.WriteLine("string偏 実行にかかった時間は " + (stop - start) + " ミリ秒です。");
        
        start = System.Environment.TickCount;

        List <int> lst3  = new List <int>(MAX);
        List <int> lst4  = new List <int>(MAX);

        //溜め込む
        for (int i = 0; i < MAX; i++) {
            lst3.Add(i);
        }

        //転記する
        foreach (int n in lst3) {
            lst4.Add(n);
        }
        
        stop = System.Environment.TickCount;
        System.Console.WriteLine("int偏 実行にかかった時間は " + (stop - start) + " ミリ秒です。");
    }
}


Java Ver
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
import java.util.ArrayList;

public class JavaVer {
    private static final int MAX = 1000000;
    
    public static void main(String[] args) {

        ArrayList <String> lst  = new ArrayList <String>(MAX);
        ArrayList <String> lst2 = new ArrayList <String>(MAX);

        long start = System.currentTimeMillis();

        //溜め込む
        for (int i = 0; i < MAX; i++) {
            lst.add("てすと");
        }

        //転記する
        for (String str : lst) {
            lst2.add(str);
        }
        
        long stop = System.currentTimeMillis();
        System.out.println("String偏 実行にかかった時間は " + (stop - start) + " ミリ秒です。");

        start = System.currentTimeMillis();

        ArrayList <Integer> lst3 = new ArrayList <Integer>(MAX);
        ArrayList <Integer> lst4 = new ArrayList <Integer>(MAX);

        //溜め込む
        for (int i = 0; i < MAX; i++) {
            lst3.add(i);
        }

        //転記する
        for (int n : lst3) {
            lst4.add(n);
        }
        
        stop = System.currentTimeMillis();
        System.out.println("int偏 実行にかかった時間は " + (stop - start) + " ミリ秒です。");
    }
}


■実行結果
D:\Documents\Programing>java JavaVer
String偏 実行にかかった時間は 59 ミリ秒です。
int偏 実行にかかった時間は 353 ミリ秒です。


D:\Documents\Programing>CsVer
string偏 実行にかかった時間は 16 ミリ秒です。
int偏 実行にかかった時間は 31 ミリ秒です。


パフォーマンスを意識するため計測方法をどちらも同じ方法(時間を取得し計測)をとっています。
行っていることは、1000000回値をセットし、それを別のリストに1つずつコピーです。

参照型のStringは、そんなに変わらないのですが、値型のintに関しては、違いがでてきています。
Javaの方は、キャスト(Object型→Integer)後にアンボクシング(参照型→値型)を行う事で
パフォーマンスが悪くなっています。


計測環境
OS:Windows7
メモリ:3GB
CPU:Core2Quad 9450
.NetFramework 3.5 SP1
java version 1.6.0_17

・検索キーワード:  Java, C#, C# 2.0, ジェネリック

戻る  マイリストへ追加