如何使用紧凑序列化

为什么要紧凑序列化?

这是一个生成紧凑形式的序列化对象以提高性能的过程,从而加快网络访问。 顾名思义,紧凑的序列化文件在数据和过程的形式上是紧凑的。 紧凑序列化背后的想法是每个“已知类型”(已知类型是在框架中注册的类型)都由框架分配一个唯一的 2 字节类型句柄,这让反序列化器可以唯一地识别“已知类型” .

例如,假设框架将句柄 0 分配给 System.Int32。 然后序列化器将 2 字节句柄和 4 字节对象值写入流。 Deserializer 读取句柄,确定对象类型,然后创建对象并使用其值填充对象。 另一方面,本机序列化使用对象数据写入完整的类型信息。 NCache 通过以下方式巧妙地解决了这些本地绝育问题:

  • 这里序列化的对象不包含完整的类型信息和程序集。 它只包含一个对象值和一个唯一的 2 字节句柄。 这个唯一的 2 字节句柄用作在反序列化对象时唯一标识类型详细信息的引用。 这样可以减小物体的大小
  • 紧凑的序列化还避免了反射,这也减少了开销
  • 以上两个特性减少了IO操作
  • 随着对象大小的减小,它会自动加快网络行程并最终降低成本
  • 小对象大小和快速网络流量提高了应用程序性能

为了使用紧凑序列化,您需要在紧凑的可序列化类型中定义一个默认的公共构造函数(无参数)并将该类型注册为 NCache 经理。 NCache 现在支持自定义泛型类型。 所有具有任意数量参数的泛型类型都可以通过紧凑序列化进行序列化。 如果客户端不想通过 UI 添加泛型类型及其参数,那么他可以选择通过 IGenericTypes 类添加它们。

如何使用紧凑序列化?

使用 Compact Serializable 类型 NCache 配置缓存 NCache 管理器,然后注册您的紧凑序列化类型 NCache.

第 1 步:注册紧凑的可序列化类型:

您可以通过 '添加类型' 按钮。 执行以下步骤以使用配置的缓存注册您的类型:

  • 如果缓存正在运行,请停止缓存。
  • 点击 '紧凑序列化' 选项卡将打开以下屏幕。
注册紧凑的可序列化类型
  • 点击 '添加类型' 按钮。 一种 '选择紧凑类' 对话框将会出现。
  • 通过单击浏览包含紧凑类型的程序集文件 '浏览' 按钮,如图所示。
  • 从加载的类列表中选择要注册到缓存中的类。
  • 媒体 '添加类' 按钮在选定的类列表中添加类。
  • 点击 '好的' 按钮。
序列化中的紧凑类
  • 新添加的类型将开始出现在列表框中 '紧凑序列化' 具有紧凑类型和平台信息的选项卡。
  • '消除' 按钮将从注册类型列表中删除所选类型。
如何使用紧凑序列化
  • 这显示了所有添加的类型。 现在可以通过选择特定类型然后单击来使用泛型类型添加参数 '添加' 按钮。

第 2 步:通过泛型类型处理程序注册泛型紧凑类型

这是通过“通用类型处理程序”注册通用紧凑类型的另一种方式。 使用通用类型处理程序,用户可以通过实现我们的接口一次添加所有通用类型。 这样可以节省时间和精力。 这是一个示例代码。

public class CustomGenericType <T,K,V>         {           }

public class SetGenerics: IGenericTypeProvider
	{ 
	Type[] types = new Type[6]; 
        
	#region IGenericTypeProvider  Members 
	Type[] IGenericTypeProvider.GetGenericTypes()
		{ 
		  types[0]=typeof(Dictionary<string, Customer>);
		  types[1]=typeof(List<int>);  
		  types[2]=typeof(CustomGenericType<Employee, Product, Customer>);
		  types[3]=typeof(CustomGenericType<Employee, Product, int>); 
		  types[4]=typeof(CustomGenericType<Employee, string, byte>);
		  types[5]=typeof(CustomGenericType<string, Customer, bool>);
		  return types;
		}
	#endregion
	}

要注册类型,请按照以下步骤操作。

  • 点击 '通用类型处理程序' 按钮。 一种 '选择紧凑类' 对话框将会出现。
  • 通过单击浏览实现此接口并包含紧凑类型的程序集文件 '浏览' 按钮,如图所示。
注册通用紧凑类型
  • 点击 '好的' 按钮。 所有添加的类型将如下所示列出。
紧凑的序列化框架

接下来做什么?

联系我们

联系电话
©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。