Я пытаюсь выполнить сериализацию и десериализацию для словарей на C#. Проблема в том, что, когда я делаю Deserialization, это занимает 3-4 минуты. Размер текстового файла - 4.3 МБ. Вот мой код. Пожалуйста, помогите мне.Быстрый способ сериализации и десериализации
[Serializable]
public class WordTag
{
public String Word, Tag;
public double prob;
public WordTag()
{ }
public WordTag(String W, String T)
{
Word = W;
Tag = T;
}
[Serializable]
public class EqualityComparer : IEqualityComparer<WordTag>
{
public bool Equals(WordTag x, WordTag y)
{
return x.Word == y.Word && x.Tag == y.Tag;
}
public int GetHashCode(WordTag x)
{
return base.GetHashCode();
}
}
}
.....................
try
{
using (Stream stream = File.Open("e:\\WordTagFreq.txt", FileMode.Open))
{
BinaryFormatter bin = new BinaryFormatter();
WordTagDic.Clear();
WordTagDic = (Dictionary<WordTag, int>)bin.Deserialize(stream);
}
}
catch (IOException)
{
}
Похоже, это было бы намного проще и быстрее, чтобы сделать это без сериализации. –
Вы должны найти, где задержка. 1) о ваших действиях? 2) в большом файле данных, который требует десериализации ... во втором случае используйте другую библиотеку, например, посмотрите на protobuf-net: https://code.google.com/p/protobuf-net/ – Aristos