erlang相关内容

基于并发设计的Agent / Actor的设计模式

最近我一直在使用替代语言来支持一个演员/代理/共享的架构 - 即。 scala,clojure等(clojure也支持共享状态)。 到目前为止,我读过的大多数文档都围绕着介绍级别。我正在寻找的是四个帮派的更高级的文档,而不是基于任何东西。 为什么?它有助于思考设计思维的变化。简单的例子很简单,但在现实世界的java应用程序(单线程)中,您可以拥有具有复杂关系的1000个成员的对象图。但 ..
发布时间:2017-05-12 20:57:08 软件设计

Erlang / OTP生产应用程序部署简介

我想在一个VPS上开发和部署一个Erlang / OTP应用程序。 我非常熟悉在本地机器上开发Erlang代码,问题是关于部署。 基本上,我想知道为了将Erlang代码从本地计算机移动到生产服务器并使其运行,我应该采取哪些步骤,即可供用户使用。 注意:我已经阅读了一些关于 Erlang和命令行,Erlang 代码模块,Erlang 发布,但我还是不知道如何追求所需的任务。 ..
发布时间:2017-05-06 17:19:24 其他开发

在Erlang模块中使用-compile请求debug_info

我想强制Erlang编译器在编译时为特定模块生成调试信息,而无需向编译命令添加 debug_info 参数。我尝试添加 -compile([debug_info])。 到模块文件,但运行 c(my_module)没有在光束文件中包含调试信息。 有没有办法这样做,或调试信息不​​能从模块源文件本身添加? 解决方案 使用 -compile 指令,而不包含围绕 ..
发布时间:2017-04-21 20:57:00 开发方法

dbg:tracer可视化递归函数,例如通过缩进

我有问题调试一个复杂的递归函数我使用的成语: dbg:tracer(),dbg :p(all,c),dbg:tpl(Mod,Fun1,x),dbg:tpl(Mod,Fun2,x)... 这给我一个对所有函数的调用的平面列表,很难找出哪个返回属于哪个调用。 我可以稍后对每个通话的生成和缩进的文字进行处理,并且对于每个返回来说都是过往的,但这对我来说听起来 ..
发布时间:2017-04-18 02:45:48 开发方法

加快Erlang编辑,编译,运行/调试循环

编辑Erlang应用程序的最快方式是什么,编译代码并查看运行结果?最好在最后一步跳进Erlang shell。 我目前的新手设置: 编译应用程序并启动erl shell的脚本。 然后我输入应用程序:start(foo)。 当我修复打字错误时,我用c('module')和重新启动应用程序。 有更快的方法吗? BTW。我的编辑器是Emacs。 解决方案 这是我的设置: ..
发布时间:2017-04-18 01:32:28 开发方法

如何调试Erlang代码?

我有一些Ruby和Java背景,我习惯于在错误日志中具有确切的行数。 所以,如果编译代码中有错误,我将看到在控制台输出中导致异常的行数。 像这个Ruby例子一样: my_ruby_code.rb:13:在`/' by 0(ZeroDivisionError) from my_ruby_code.rb:13 它的简单快速 - 我只需转到第13行并修正错误。 ..
发布时间:2017-04-18 01:04:01 开发方法

检查Erlang崩溃转储 - 如何解释所有内存?

我已经在这个Erlang崩溃转储中移动了,这个虚拟机已经用完了堆内存。问题是,没有明显的罪魁祸首分配所有记忆。 使用一些严重的黑色 awk magic I' ve总结了 Stack + heap , OldHeap ,堆未使用和 OldHeap unused ,并按内存使用量排序。问题是,这个数字不会接近代表所有进程的总内存的数字 processes_used 根据 Erlang崩溃转储指南 ..
发布时间:2017-04-18 00:08:19 开发方法

在Erlang中使用trace和dbg

我正在尝试开始使用erlang:trace / 3和dbg模块来跟踪现场制作系统的行为,而不会使服务器关闭。 a href =“http://erldocs.com/R13B03/erts/erlang.html?search=erlang:trace&i=0#trace/3”rel =“noreferrer”>文档是 opaque (轻轻地放),那里似乎没有任何有用的在线教程。 我一 ..
发布时间:2017-04-17 18:29:22 开发方法

在erlang中将时间戳转换为datetime

如何将Erlang中的时间戳(1970年1月1日以来的毫秒数)转换为Date或DateTime格式? 解决方案 大致: msToDate(毫秒) - > BaseDate = calendar:datetime_to_gregorian_seconds({{1970,1,1},{0,0,0}}), Seconds = BaseDate +(Milliseconds div 1 ..
发布时间:2017-04-06 22:24:57 其他开发

关于mnesia分布的问题

我有两个节点运行mnesia。我在节点1 上创建了模式和一些表,并在节点2上使用 mnesia:add_table_copy 一切正常,直到我调用 q()然后在节点2 上的 q()我发现当我再次启动节点1 时, mnesia:wait_for_tables([sometable],infinity)它只会在我再次启动节点2 时返回。 有办法解决这个问题吗?这是一个问题,因为如果节点2 ..
发布时间:2017-03-18 19:52:56 其他数据库

从不同节点访问分布式mnesia数据库

我有一个包含不同表格的mnesia数据库。 我想能够从不同的Linux终端访问表格。 我有一个名为 add_record 的函数,它需要一些参数,例如 name 和 id 。我想能够在节点1 和上添加记录调用 add_record c> node2 ,但我想从不同的位置更新相同的表。 我唯一发现的是,我应该使用 net_adm :ping (node2)。但我无法从表中访问数据。 ..
发布时间:2017-03-17 21:20:42 其他数据库

Erlang:Mnesia:更新行中的单个字段值

我有一个mnesia表,包含使用记录创建的三个字段i,a和b。 ,{i,a,b})。 现在我在表格中插入一行: mnesia:transaction(fun() - > mnesia:write(“T”,#rec {i = 1,a = 2,b = 3},write)end )。 现在,如果我想更新此行, 10,而使i和b具有相同的值?是否有任何 ..
发布时间:2017-03-17 20:39:00 其他数据库

哪个DB(SQL)在Erlang更好的支持?

你建议我使用Erlang - MySQL还是Postgres? 解决方案 Erlang ODBC接口可用于连接到具有ODBC的任何数据库驱动程序。这是官方支持,可以用于MySQL和Postgres。 Postgres有一个100%的Erlang驱动程序,名为 PGSQL 。这不是OTP的一部分,我不知道它的质量。 ..
发布时间:2017-03-17 19:19:15 其他数据库

为Couch Base Server 1.8和2.0构建Erlang客户端

我们在我们的产品中使用了 Couchbase Server 。它的前端是纯JavaScript的Intranet应用程序。不过,我们使用 Erlang / OTP 进行商业逻辑,身份验证( Mnesia ), yaws网络服务器和一堆其他erlang库。 现在,我们仍然使用 Couch Base单一服务器,其下载已从 Couch基本网站。我们发现它很稳定。现在,5个月的运行,它从来没有下来。 ..
发布时间:2017-03-17 17:26:30 其他数据库

CouchBase 1.8和2.0 Erlang SDK?为什么是Erlang省略

我真的很喜欢 CouchBase 团队为我们提供一个伟大的NoSQL解决方案所做的伟大工作。然而,尽管与可能的ruby,PHP,java或Python相比,erlang Web开发人员很少,但是开发人员的数量却在增加。 这让我明白为什么在他们的 SDK页面上,他们经常忘记 Erlang 。使用 yaws网络服务器, Mochiweb 和许多其他Erlang Web库,为什么在世界上他们不会支 ..
发布时间:2017-03-14 04:42:19 其他数据库

非常大的Mnesia生产表

我们使用Mnesia作为一个非常大的系统的主数据库。 Mnesia碎片表在测试期间表现良好。系统有大约15个表,每个表复制在2个站点(节点),每个表是高度分散的。在测试阶段(专注于可用性,效率和负载测试),我们接受了Mnesia以及其复杂结构的许多优势,因为我们所有运行在服务上的应用程序都是Erlang / OTP应用程序。我们运行Yaws 1.91作为主WebServer。 为了有效地配置 ..
发布时间:2017-03-14 03:17:11 其他数据库

什么是最廉价的方式来构建一个Erlang服务器场(一个爱好项目)?

假设我们有一个“本质上并行”的问题要用我们的Erlang软件来解决。我们有很多并行进程,每个执行顺序代码(不是数字处理)和更多的CPU更多的CPU。 我听说过CUDA针对Erlang的绑定,但在观看Kevin Smith的演示之后,我不确定这是解决方案:整个pteracuda缓冲区的目的是为缓冲区分配一个困难的数字处理任务并得到结果。不可能使用GPU的处理器来服务Elrang的进程。 (我是 ..
发布时间:2017-03-04 14:48:09 其它硬件开发

如何使已编写的并发程序在GPU阵列上运行?

我有一个用Erlang编写的神经网络,我刚买了一颗GeForce GTX 260卡,带有240核GPU。使用 CUDA 作为胶水在图形卡上运行是否很简单? 解决方案 不,使用CUDA不是一件小事。 CUDA编程模型基本上使用C(还有一些补充),但为了充分利用GPGPU的功能,您必须确保算法遵循CUDA指南。 (请参阅 NVidia CUDA编程指南) 例如,为了获得最佳的内存性 ..
发布时间:2017-03-04 12:35:37 其它硬件开发