Снова вопрос о сжатии на сервисах wcf.
Я использую привязку netnamedpipe для отправки некоторых объектов сущности в мое вызывающее приложение.
Я знаю, это плохая идея, но мой клиент хочет, чтобы это было реализовано.
Итак, сейчас я должен отправить около 45000 наборов данных (объектов сущностей) через netnamedpipe.
Это действительно очень медленно. Я реализовал класс, который сжимает объекты данных в
байт [] перед отправкой, но 45000 наборов все еще занимают 45 секунд для отправки / получения.
Я сжимаю так:
public static byte[] Compress<T>(T data)
{
byte[] result = null;
using (var memory = new MemoryStream())
{
using (var zip = new DeflateStream(memory, CompressionMode.Compress, true))
{
var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
formatter.Serialize(zip, data);
}
result = memory.ToArray();
}
return result;
}
Есть ли способ улучшить это? 45 секунд это слишком много :( Я думаю, главной причиной может быть сериализация объектов моей сущности ... но как ускорить это?