Scala 将特殊情况注入Akka序列化模块
我想添加一些特殊情况来提高任何Akka序列化模块的性能,即允许更快地序列化Scala 将特殊情况注入Akka序列化模块,scala,networking,serialization,pattern-matching,akka,Scala,Networking,Serialization,Pattern Matching,Akka,我想添加一些特殊情况来提高任何Akka序列化模块的性能,即允许更快地序列化数组[Double]或用户包装的任何基本类型。是否有一种规范化的方法允许按类型进行自定义序列化 我的想法是添加一个traitCanSerialize[T],它定义方法serialize(o:T):数组[Byte]和反序列化(bytes:Array[Byte]):T。有没有一种方法可以在不失去Akka模式匹配的好处的情况下实现这样的目标 编辑 我也可以对Kryo或其他比Java的序列化程序更快的东西感到满意,但是Kryo和A
数组[Double]
或用户包装的任何基本类型。是否有一种规范化的方法允许按类型进行自定义序列化
我的想法是添加一个traitCanSerialize[T]
,它定义方法serialize(o:T):数组[Byte]
和反序列化(bytes:Array[Byte]):T
。有没有一种方法可以在不失去Akka模式匹配的好处的情况下实现这样的目标
编辑
我也可以对Kryo或其他比Java的序列化程序更快的东西感到满意,但是Kryo和Akka 2.1似乎没有任何预打包的jar文件。您可以为特定类型注册自己的序列化程序
akka.actor {
serialization-bindings {
"[D" = doubleBytes
}
serializers {
doubleBytes = "a.b.YourDoubleArraySerializer"
}
}
请注意,[D
是数组[Double]
的类名
你能详细解释一下“[D”吗?我看不出这是什么数组[Double]?scala>Array[Double](2)。getClass.getName res1:String=[我在考虑这个方案:注册一个接受数组[Byte]并返回数组[Byte]的自定义序列化程序(即不执行任何操作),然后用我自己的序列化模块对其进行预序列化。这对我的HPC框架很有用。