Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 哪种序列化方法/函数/BIF在Erlang中的性能最好?_Performance_Serialization_Erlang - Fatal编程技术网

Performance 哪种序列化方法/函数/BIF在Erlang中的性能最好?

Performance 哪种序列化方法/函数/BIF在Erlang中的性能最好?,performance,serialization,erlang,Performance,Serialization,Erlang,哪种序列化方法/函数/BIF等在Erlang中的性能最好? 我的情况是: 我有memcache,其中包含我需要检索每个请求的数据 重新修改的数据是二进制项(当我使用二进制项时,有一个小数据列表) 我需要对这些数据做一些逻辑分析,所以我需要对它们进行非序列化 在另一个系统上,我在memcache中设置数据,以便可以更改所有内容 请帮我选择序列化的方法。 只有表现才是我的目标。 谢谢 binary-to-term是你的朋友。这正是你需要的 如果您想利用此数据购买其他非erlang系统,这里有一个库列

哪种序列化方法/函数/BIF等在Erlang中的性能最好? 我的情况是:

  • 我有memcache,其中包含我需要检索每个请求的数据
  • 重新修改的数据是二进制项(当我使用二进制项时,有一个小数据列表)
  • 我需要对这些数据做一些逻辑分析,所以我需要对它们进行非序列化
  • 在另一个系统上,我在memcache中设置数据,以便可以更改所有内容
  • 请帮我选择序列化的方法。 只有表现才是我的目标。
    谢谢

    binary-to-term是你的朋友。这正是你需要的


    如果您想利用此数据购买其他非erlang系统,这里有一个库列表可以帮助您:

    二进制erlang格式的替代方案可能是。它是一种“与语言无关、与平台无关、可扩展的结构化数据序列化方式,用于通信协议、数据存储等”。Basho的Riak产品使用的Erlang实现是。

    您能澄清一下您的体系结构吗?第1点和第4点中的memcache实例是否相同?数据是否由非erlang应用程序使用?是不是二进制项太慢了?如果是,你目前的基准数字是多少?你需要达到什么水平?你试过使用记忆法或ets吗?为什么不让管理现在放入memcache中的数据的节点上的进程保持活动状态。1。Memcache实例是同一个实例。2.erlang应用程序不使用数据,但如果将来可以,那就太好了。我的目标是尽可能快地为客户端反序列化数据。序列化可能很慢,反序列化必须很快。所以在性能方面,没有比二进制\u对\u更好的了?如果这是真的,那么我将被设置;)现在我在做这样的事情:1。是memcache->get->binary\u to\u term 2中的数据。如果不生成内容->memcache->设置->term_to_binaryTereshka,我们将使用非常类似的方法在riak中存储数据(从应用程序的角度来看,riak和memcache之间几乎没有区别)。并且您将binary_to_term BIF用于仅为Erlang应用程序设计的数据,而将BERT用于其他应用程序?对吧?对。当需要通过字符敏感通道发送二进制数据时,我们也使用
    base64:decode/1
    base64:encode/1
    函数。Hi WardB,在我尝试protobuf时(大约4个月前),它的实现没有正确地支持所需的类型。Hi MinimeDJ,很高兴知道,因为我想很快在项目上使用协议缓冲区。ThxI已经尝试了所有可用的方法(protobuf、Thrift和其他一些定制解决方案),我相信
    二进制to_term
    是完成这项工作的最佳选择。所有其他解决方案都有您真正不需要的功能,
    binary\u to\u term
    只起作用。当然,它不像其他产品那样灵活,但它没有功能缺陷,而且速度非常快。@Worker,因为你也是piqi的一员。。。我一直想知道,a)erlang驱动程序序列化是否也只是
    术语\u to \u binary…
    函数,或者它是否使用另一个序列化协议(对于管道驱动程序)。b) 为什么世界上从来没有人为elang术语的序列化编写ASN.1定义?如果有人拥有……2 all:USEProtobuf,那么支持一种新的管道erlang驱动程序实现语言就很容易了。