2017-07-19 11 views
0

私は最近、この記事(Loading pokemon from xml file)に遭遇しました。外部の文書(XMLファイルなど)に大量のオブジェクトを参照する方が良いか、コレクション(リストや辞書など)パフォーマンスが向上しますか?私は非常に長いためにプログラミングされていないパフォーマンスの方が優れています:外部ドキュメントまたは内部コレクションを参照していますか?

ので、私はこの質問の「共通知識」タイプであればおわび申し上げますが、私は主に

  1. がどのようであるという点でパフォーマンスの側面に焦点を当てていますアクセスされたメモリ?たとえば、ハードドライブ上のメモリを増やすxmlファイルとは対照的に、コレクションではRAMの使用量を増やす必要がありますか?

  2. ランダムオブジェクトにアクセスすると、どちらの方が速いのでしょうか? I. 100,1000、または10,000のオブジェクトのリスト?私の推測では、内部のリストや辞書にアクセスする方が、外部のxmlファイルを読み込んでオブジェクト情報を取得しようとするよりも速くなるということです。

  3. オプションの1つが他のプログラミングよりも優れていると考えられますか?それは単に好みですか? (これは必ずしもパフォーマンスに関する質問ではないが、私はそれがまだ知る価値があると信じている)。

私はポスト(ポケモン)で見つけた例を使って、私の最初の考えはコレクションを内部にするための2つの事柄です。 (私は数百ポケモンので、これは実用的ではないかもしれないがあると考えているが)

  1. は、私はすべてのポケモンは、個々の情報のためのポケモンの特定の種を持っていた後、子クラスから派生基本クラスを作成します。私はここから(...などの名前など、種、)

を各ポケモンが持っているでしょう、いくつかのプロパティを持つポケモンと呼ばれるクラスを作成します

  • 私はおそらくリストや辞書になるだろう私は必要に応じて各ポケモンを参照するために使用する。

    代わりに、ポケモンのリストでxmlファイルを作成し、必要に応じていつでもファイルを呼び出すという質問のポスターとしてやります。

    上記の3つの質問には何らかのコンテキストが含まれる可能性があるので、私はこの情報を含めましたが、オブジェクトの数が多い場合は内部コレクションと外部ドキュメントのパフォーマンスが主に関係しています。

    注:外部ドキュメントは必ずしもxmlである必要はありませんが、それは私が見つけた投稿で使用されているものです。

  • +2

    どちらが速いのかを知りたい場合は、両方を試してみて*自分で調べる*。 – Servy

    +1

    私はこれを使用する特定のプロジェクトに取り組んでいませんが、オブジェクトの大きなリストを使用してプロジェクトを行った人が、すでに思考プロセスを経て、何が思いついたのかを見ているだけです。もし私がする必要がなければ、私は車輪を再発明しないことを好むだろう。 – Sudsy1002

    +1

    だから、実際に知る必要はありませんか?もしそうなら、なぜその質問をしますか?あなたが知る必要がある場合は、簡単なテストを書いて見つけてください。 – Servy

    答えて

    0

    内部コレクションは、シリアライズ/デシリアライズされたコンテンツのパフォーマンスが向上します。

    実際には、あなたの要件が沸き起こり、むしろ一般的なやり方で決めるのです。データがアプリケーションによってめったにアクセスされず、アプリケーションが長時間実行されているアプリケーションの場合、ファイル内のデータをシリアル化し、必要に応じてデシリアライズする必要があります。しかし、より多くの場合、特に大きなメモリチャンクを持つワークステーションでは、それほど大したことではありません。私はむしろこのアプローチから遠ざかりたいと思う。

    0

    部分的な答え:メモリをアクセスする方法

    ?たとえば、コレクションには、 ハードドライブでより多くのメモリを使用するxmlファイルとは対照的に、RAMの使用が多くなります( )。

    RAMの使用は、xmlファイル全体を一度に読み込むかどうかによって異なります。

    オプションの1つは、 以外のプログラミングの方が優れていると考えられますか?それは単に好みですか? (これは必ずしも パフォーマンスに関する質問ではありませんが、私はそれがまだ分かっていると信じています)。

    外部リソースの最も明白な利点は、データを変更するたびにプログラム全体を再コンパイルする必要がないことです。プログラムのサイズに依存する長所と短所がありますが、変更したいデータはすべて、再コンパイルする必要はありません。

    関連する問題