XmlDocument
オブジェクトを使用してXML文書をロードしてノードを数えるコードを記述しました。C#:Xml.Load(file)のcloseメソッド
XmlDocument xml = new XmlDocument();
xml.Load(textBox1.Text);
XmlNodeList nodes = xml.SelectNodes("//File");
foreach (XmlNode node in nodes)
{
number_of_childs++;
}
私が直面している問題は、大きなファイルを読み込むときに700MBのRAMが必要になるということです。私がそのファイルを操作しようとすると、ListView
にそのデータを表示するためにそれを読み込んだら、アプリケーションは2GBのRAMのようになります。だから私はXmlDocument
を閉じてメモリを解放してRAMを解放する方法があるのだろうと思っていた。それはメモリからそのコンテンツを削除することを忘れているようなものです。
ありがとうございました。しかし、うまくいきませんでした。あなたのコードを適用しましたが、まだ同じ量のメモリを予約しています。 –
@ R.Vector私の編集を参照してください。 –
うん、それはうまくいったけど、アプリケーションの2番目のステップはすべてのノードを読み込んでそれをリストビューに入力することなので、問題はまだ残っていますが、xmlの各ノードを読み込み、正常にどこかに格納されていれば、メモリ管理の方が良いでしょう。 –