草庐IT

tcp - Erlang中socket的 "packet"选项怎么能把tcp传输加速这么多?

使用{packet,4}通过本地主机上的两个不同端口传输1G数据仅需8秒,而使用{packet,raw}无法在30秒内完成同一任务。我知道如果使用后一种方法,数据将以数万个小块的形式到达(在archlinux上大小为1460字节)。我已经了解了TCP/IP协议(protocol)的某些方面,并且已经思考这个问题好几天了,但仍然无法弄清楚确切的区别是什么。真诚期待一些自下而上的解释。-module(test).-export([main/1]).-define(SOCKOPT,[binary,{active,true},{packet,4}]).main(_)->{ok,LSock}=g

sockets - Erlang gen_tcp 连接问题

简单的问题...这段代码..client()->SomeHostInNet="localhost"%tomakeitrunnableononemachine{ok,Sock}=gen_tcp:connect(SomeHostInNet,5678,[binary,{packet,0}]),ok=gen_tcp:send(Sock,"SomeData"),ok=gen_tcp:close(Sock).很清楚,只是我不太明白[binary,{packet,0}]是什么意思?有人愿意解释一下吗?疯狂的塞布 最佳答案 根据gen_tcp:co

python - erlang 到 python 的接口(interface)

我一直在扩展Armstrong的经典接口(interface)示例的Python版本。当我通信字节时一切正常。但是,我想传达长整数和float。Mabye甚至(哦,不)弦乐。这是我的代码:http://pastebin.com/epxgDmvuhttp://pastebin.com/rD7CWRkz首先,我只知道如何发送字节。Erlang可以向它的界面发送其他任何东西吗?或者我必须将float转换为字节列表,将其发送到python,然后在python中将其组装回float吗?另外,还有其他方法:如果我使用“f”格式打包,erlang会将其识别为字节列表。有没有办法说服erlang将这些

python - 我如何从 Python 调用 erlang?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:bestwaytointegrateerlangandpython要使用erlang的一些强大功能,我应该从Python调用erlang程序,我该怎么做?谢谢~

python - Python 的类似 Erlang 的并发性?

Python有没有像Erlang那样具有并发性的东西,特别是网络上的透明参与者?我看过类似greenlet的东西和stackless,但他们似乎没有对参与者的网络透明性。我仍然无法完全跨越Erlang/OTP的障碍,所以我对离家较近的东西很感兴趣。 最佳答案 与其试图让Python更像Erlang,不如让Erlang更像Python?Efene和Elixir是生成BEAM文件的语言编译器,这些文件可以利用ErlangBEAM模拟器的所有功能,包括网络透明消息传递。Efene有一个“ifene”变体,它定义了带有空格的block,就像

Erlang 和 Redis : read performance

我在尝试从Redis排序集中读取1M记录时突然遇到性能问题。我使用了ZSCAN,光标和批量大小为5K。代码是在托管Redis的同一台机器上使用ErlangR14执行的。接收5K元素批处理需要将近1秒。不幸的是,我在这台机器上编译ErlangR16失败了,但我认为这没有关系。相比之下,带有node_redis(hiredis解析器)的Node.js代码在2秒内完成1M。Python和PHP的结果相同。也许我做错了什么?提前致谢。这是我的Erlang代码:-module(redis_bench).-export([run/0]).-define(COUNT,5000).run()->{_,

erlang - 如何让 Webmachine 和 eredis 一起工作?

在我的Webmachine应用程序中,我一直在思考Redis的使用问题一个星期。我还没有开悟。我将使用Eredis,这是一个使用示例:{ok,Con}=eredis:start_link().{ok,>}=eredis:q(Con,["SET","foo","bar"]).{ok,>}=eredis:q(Con,["GET","foo"]).据我所知,eredis:start_link()应该只在某处调用一次。但是我怎样才能在我的资源中获取Con变量呢? 最佳答案 有几种解决方法:在本地或全局注册一个redis连接使用像gproc这

docker - Docker 上的 Erlang/Elixir 和热代码交换

Erlang(根据定义,也就是Elixir)的特性之一是您可以进行代码热交换。但是,这似乎与Docker不一致,您需要停止实例并使用包含新代码的新镜像重新启动新实例。这基本上似乎是每个人都在做的事情。话虽如此,我也知道可以使用一个隐藏节点通过网络将更新分发给所有其他节点。当然,这样听起来像是自找麻烦,但是……我的问题如下:有没有人尝试过为Erlang/Elixir建立一个允许热代码交换的基于Docker的基础架构并取得了相当大的成功?如果是,有哪些注意事项、注意事项和注意事项? 最佳答案 故事想象一个系统来处理手机通话或移动数据访问

docker - Docker 上的 Erlang/Elixir 和热代码交换

Erlang(根据定义,也就是Elixir)的特性之一是您可以进行代码热交换。但是,这似乎与Docker不一致,您需要停止实例并使用包含新代码的新镜像重新启动新实例。这基本上似乎是每个人都在做的事情。话虽如此,我也知道可以使用一个隐藏节点通过网络将更新分发给所有其他节点。当然,这样听起来像是自找麻烦,但是……我的问题如下:有没有人尝试过为Erlang/Elixir建立一个允许热代码交换的基于Docker的基础架构并取得了相当大的成功?如果是,有哪些注意事项、注意事项和注意事项? 最佳答案 故事想象一个系统来处理手机通话或移动数据访问

go - Erlang/Golang 端口示例中的缓冲区大小

我有一个粗略的Erlang到Golang端口示例,将数据从Erlang传递到Golang并回显响应。问题是我可以传输的数据量似乎限制为2^8字节(见下文)。我认为问题可能出在Golang方面(没有创建足够大的缓冲区)但是用bufio.NewReaderSize替换bufio.NewReader没有用。所以我现在认为问题可能出在Erlang方面。我需要做什么来增加缓冲区大小/能够回显大于2^8字节的消息?TIAjustin@justin-ThinkPad-X240:~/work/erlang_golang_port$erl-paebinErlang/OTP17[erts-6.4.1][s