質問

システムの仕事をこちらに書いた。純2.0かのジェネリック医薬品のメリット.また最終的に更新2.0が、コードを整理による時間的制約のある場所のコードを使ArraysLists。るものとします。

から性能の視点で、どのように重要な変更をコード用ジェネリック医薬品?から"音姫"的な視点で、ボクシングやunboxing等 非効率ですが、どのくらいの性能はありますから変化するのですか?いてジェネリック医薬品にも使用前進基盤であり十分のパフォーマンスが良心努力する更新古いコードについて教えてください。

役に立ちましたか?

解決

技術の性能ジェネリック医薬品としてまいります。しかし、この性能は極めて重要なだけで最適化され他の地域だがり改善による支出のお時間です。

を提供している:

  • 使用のジェネリック医薬品です。
  • だがしっかりした単体テスト(ユニットテストしrefactorるジェネリック医薬品としてタッチすコード
  • 過ごせその他の時間refactorings/測定する大幅な性能向上(データベースの通話、データ構造など)ではなく、数ミリ秒だけではないことを知りました。

もちろんある理由以外の性能変更にジェネリック医薬品:

  • 以下の誤りがいのでコンパイル時のチェックの種類
  • 読みやすくする工夫する必要がなくなり、より快適なキャストの中で明らかでどのような保存コレクション
  • を使用している場合、ジェネリック医薬品から、いよいよクリーナーを使用しても

他のヒント

この結果からもらった単純な構文解析の文字列から100KBファイル100,000。汎用リスト(charの)した612.293秒で100,000回のファイルです。のArrayListた2,880.415秒で100,000回のファイルです。このようにシナリオとしてのマイレージ ります)のリスト(charの)4.7倍になります。

こちらのコードを走り抜け100,000回

Public Sub Run(ByVal strToProcess As String) Implements IPerfStub.Run
    Dim genList As New ArrayList

    For Each ch As Char In strToProcess.ToCharArray
        genList.Add(ch)
    Next

    Dim dummy As New System.Text.StringBuilder()
    For i As Integer = 0 To genList.Count - 1
        dummy.Append(genList(i))
    Next

End Sub

 Public Sub Run(ByVal strToProcess As String) Implements IPerfStub.Run
     Dim genList As New List(Of Char)

     For Each ch As Char In strToProcess.ToCharArray
         genList.Add(ch)
     Next

     Dim dummy As New System.Text.StringBuilder()
     For i As Integer = 0 To genList.Count - 1
         dummy.Append(genList(i))
     Next
 End Sub

のようにプロコード工具を用いています.

http://www.jetbrains.com/profiler/

まれてくる可能性があることで、ボクシング/unboxingは自明であり、アプリケーションに最適な価値のあるリファクタリング.今後もすべきであると考えているジェネリック医薬品使用により、コンパイル時の型安全性です。

ジェネリック医薬品からJavaいます。NET用いるべきであるデザインタイプの安全でない。自動ボックス化は異なるからジェネリック医薬品(基本的に暗黙のオブジェクトをプリミティブ変換)をするべきではありません使ってもらう場所のプリミティブがある場合はたくさんの演算またはその他の原因になりますので、パフォーマンスを繰り返しの暗黙のオブジェクトの作成を壊す

見を今後、更新、既存のコードが必要で清掃のためのタイプの安全設計ものではない。

による、最良の答えはプロフィールコード。いAQTimeが多くのパッケージが存在します。

一般の場合には、ArrayListの使用を多くするのが良いでしょう切り替えて一般的です。本当にがれきなものを計測することができる性能の差です。ボクシングやunboxingいて別段が現代のコンピュータのように整然と並んでいるのでほとんど何も変わらないのです。としてのArrayListは私が通常配列との素敵なラッパーという見方もパフォーマンスから得られたより良いデータ構造の選択(ArrayList.削除するにはO(n)!) 以上の変換にはジェネリック医薬品.

編集:ペプログラマーは、良い点ではまだボクシングやunboxingとジェネリック医薬品において、が暗黙のうちに.すべてのコードをチェック例外、null鋳造から、"はと"キーワードバランスを再構築することが少しますが。

最大の利益、維持します。ジェネリック医薬品は多くし、扱いやすく、更新な対応変換を鋳造す。これがコードする継続的に訪問し、すべての手段はます。このコードのとれていないタッチでなかったであろうか。

うな自動ボックス化/unboxingいジェネリック医薬品?この型の安全性の問題です。非一般の収集が必要で明示的にキャストオブジェクトの実際のタイプです。とジェネリック医薬品は不要です。とは思わないが性能に違いはなんらかの方法で。

私の古い会社で実際に考えることになる。アプローチにたたがでrefactorなどについてお話をうかがっ;ない場合(つまりですが多くのクラス)と思われる項目に関しては、のための空間に変換するようにします。こんに依存しているか否か等にいかがますます重要事項を符号化(本アプリケーションは、すべき実施のためのクライアント).

その一方で、いないにも、ソーシャルメディアで見ていて気分が良いもの時間をお過ごしのリファクタリング.まだ改善の可読性コードが入ります。

に依存してどのくらいがあなたのコードです。場合、表示の大型リストのUI、すでしょう。得することになります。

ごArrayListも交えつつあちこちにしなかったと思いき取ったので清掃もな影響の総合的な性能です。

ご利用の場合が多くArrayLists全体にコードという大きなuntertaking交換しているものに影響する可能性があり予定しいものが採用できればタッチで変化します。

主なものは、ジェネリック医薬品は多く読みやすくなり、より安定したのアプリにより、強力な入力できます。だ益なのではないでしょうか、からコードmaintainablityす。場合に行うことができるので早くしたと思います。

をすれば購入から製品のオーナーでおすすめできるのではないかと考えて洗浄します。好きはコードがあります。

場合、主体のArrayListsているオブジェクト型まから少しない鋳造し、正しいタイプです。だけでなく、値型(構造体またはプリミティブのようなInt32し、その後のボクシング/unboxing加のオーバーヘッドの汎用収すべきかになります。

こちらは、MSDNの記事に

ジェネリック医薬品のものより性能のよい合わせを多用する値型(int,bool、struct等) ることができますが得noticeble能です。

  1. 使用Arraylist価値型の原因ボクシング/unboxing成されており、それぞれが対等な複数百倍でsubstantialy遅くなりそれを用いた一覧です。

  2. 格納する時は価値の種類としてオブジェクトまへのさまざまな取り組み時にメモリーます。この金額になドレインおRAMのキャッシュメモリの小形化が含まれる場合があるため以下の項目がな繰り返し処理の長所蔵が多いからのコピーをメインメモリキャッシュのように遅いします。

について書いたもの こちらの.

用のジェネリック医薬品もこのコードするsimplier使いやすくしたい場合はレバレッジのようなものlinqの後、c#できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top