小编Muz*_*hua的帖子

mochiweb和Webmachine入门?

Mochiweb和webmachine是非常有前途的应用程序,当你看到那些发现他们周围的人正在使用它时.我需要被引导到我可以在mochiweb上找到初学者的教程.似乎没有专门用于该框架的网站.我认为我需要的是一个pdf,一个博客网站或mochiweb的教程,提供了几个如何使用它的例子.我已经是一名二郎程序员,使用氮气,雅司病,Mnesia和OTP等请告诉我方式......

mochiweb webmachine

5
推荐指数
3
解决办法
6300
查看次数

list:append/2与erlang:'++'/ 2,追加到列表末尾与追加到其头部

在两对给定的比较中,对于Erlang中的系统资源,哪一对(每对)更昂贵:

Qn1: lists:append(L1,L2)erlang:'++'(L1,L2)
Qn2相反写入列表的头部说:[NewHead|List]与写入列表末尾的对象:List ++ [NewValue]

我之所以问这个问题,是因为我的程序中有一部分是读写列表的.我需要决定是否要写到列表的头部或写到他们的目的,反之亦然.

erlang list append

5
推荐指数
1
解决办法
3958
查看次数

mnesia:wait_for_tables/2,我真的明白了吗?

我现在已经使用了mnesia一段时间了.我必须承认,我觉得我并不完全理解mnesia的概念:wait_for_tables/2.引用下面的文档说:

Some applications need to wait for certain tables to be accessible in order to do
useful work. mnesia:wait_for_tables/2 hangs until all tables in the Tab List are
accessible, or until timeout is reached.
现在,对于我开发的所有应用程序,我必须在启动后端时调用它.在上面的文档中,上下文"Some applications"没有很好地扩展,这就是我的问题所在.

这些是我的想法:
1.等待这种方法意味着我们正在加载mnesia表,从Disc到RAM(Disc_copies的情况)
2.我个人认为,如果我的应用程序只包含RAM (ram_copies)表,那么我不需要这个我的代码中的方法.现在,我认为如果我只有disc_only_copies,我也不需要这个功能.
3.此外,我在从网络加载mnesia表时需要此功能,尤其是当我的表被复制时,所以我的应用程序需要等待启动时​​的mnesia才能使这些表准备好.但这仍然只适用于类型表,disc_copies为什么完全在Disc上运行或完全在RAM中运行的应用程序需要等待并加载表?

问题:
帮助和检查我的想法1,2和3.一般来说,只有在处理mnesia表类型时才需要此功能:disc_copies因为这种类型与光盘和RAM上的数据复制有关吗?

如果我的表都是碎片,(我总是为每个片段调用此方法以确保mnesia为我的应用程序做好准备),我是否必须调用每个片段的方法?是ATOMIC或Transactional的方法,如果我在mnesia事务中调用它(意味着如果我单独指定基表,mnesia将自动加载所有表片段)?我的碎片的表格类型对此功能也有影响吗?

erlang mnesia

5
推荐指数
1
解决办法
1440
查看次数

Erlang及其对堆内存的消耗

我一直在HP Proliant服务器上运行高度并发的应用程序.该应用程序是我在erlang中编码的文件系统索引器.它在文件系统上找到每个文件夹的进程,并在碎片化的Mnesia数据库中记录所有文件路径.(数据库由disc_only_copies表的类型组成,其文件系统的屏幕截图可在此处查看.)

执行文件系统的高密度工作的代码片段如下所示:


%%% -------- COPYRIGHT NOTICE --------------------------------------------------------------------
%% @author Muzaaya Joshua, <joshmuza@gmail.com> [http://joshanderlang.blogspot.com]
%% @version 1.0 free software, but modification prohibited
%% @copyright Muzaaya Joshua (file_scavenger-1.0) 2011 - 2012 . All rights reserved
%% @reference <a href="http://www.erlang.org">OpenSource Erlang WebSite</a>
%% 
%%% ---------------- EDOC INTRODUCTION TO THE MODULE ----------------------------------------------
%% @doc This module provides the low level APIs for reading, writing,
%% searching, joining and moving within directories.The module implementation
%% took place on @date at …

mysql linux oracle erlang solaris

4
推荐指数
1
解决办法
2675
查看次数

EXT JS Store的代理:读者和作家

在文档中,我发现了一个实例化如下的商店:

var store = Ext.create('Ext.data.Store', {
    autoLoad: true,
    model: "User",
    proxy: {
        type: 'ajax',
        url : 'users.json',
        reader: {
            type: 'json',
            root: 'users'
        }
    }
});

代理有一个url配置.我对读者特别感兴趣.阅读器指定数据交换格式(json)和根('用户').现在,换句话说,如果存储设置为:autoLoad = true,那么EXT JS将与指定的URL建立Ajax连接read.现在,我如何为上面的同一个商店配置一个作家?有人还告诉我这个:如果我配置一个编写器,它会使用代理中指定的相同URL吗?我仍然对上面显示的代码的上下文中的作者和读者感到困惑,你会帮助我使用上面的例子来展示读者和作者的配置.谢谢.

html javascript jquery extjs extjs4

4
推荐指数
1
解决办法
2万
查看次数

Erlang中的文本压缩

是否有Erlang的文本压缩库?使用非常长的字符串时,压缩字符数据可能是有利的.有没有人在Erlang中压缩文本或想办法?

我正在考虑使用该zip模块,但我没有使用文件,而是在内存中工作,如下所示:

compress(LargeText)->
    Binary = list_to_binary(LargeText),
    {ok,{_,Zipped}} = zip:zip("ZipName",[{"Name",Binary}],[memory]),
    Zipped.
Run Code Online (Sandbox Code Playgroud)

然后我会unzip在需要时将文本重新记忆.像这样:

{ok,[{"Name",Binary}]} = zip:unzip(Zipped,[memory]).
Run Code Online (Sandbox Code Playgroud)

我的Erlang应用程序应该是中间层的一部分,其中大文本可能必须传递到存储系统和从存储系统传出.存储系统用于存储大文本.要优化存储,需要在发送之前对其进行压缩.假设文本值类似于CLOBOracle数据库中的数据类型.我在想,如果我把拉链和拉链结合起来erlang:garbage_collect/0,我可以把它拉下来.

或者如果在Erlang中不可能,也许可以使用system callvia os:cmd({Some UNIX script})然后我会在Erlang中获取输出?如果有更好的方法,请展示它.

database compression erlang cryptography memory-management

4
推荐指数
1
解决办法
730
查看次数

Erlang中的空进程邮箱

当您向shell进程发送消息时,可以通过调用以下命令清除所有消息: c:flush().

C:\Windows\System32>erl
Eshell V5.9  (abort with ^G)
1> self() ! josh.
josh
2> self() ! me.
me
3> self() ! you.
you
4> flush().
Shell got josh
Shell got me
Shell got you
ok
5>

在我的想法中,这会清空shell进程的邮箱.清空任何erlang进程邮箱的等效方法是什么?

erlang message-passing

4
推荐指数
1
解决办法
1779
查看次数

ETS/Mnesia RAM表中的官方/建议/允许的最大记录数(或RAM表大小)

Erlang一直是许多"新时代"(淫秽快速和容错)消息传递系统的良好应用.例如可以RabbitMQ的,ejabberd,WhatsApp的移动等不管邮件系统是如何构建的,它需要知道什么会话回事,谁登录,等我认为保持数据IN-MEMORY是不可避免的此类系统.

对于二郎,最大可能是什么,或者允许的最大什么或什么是在记录的正式通知最大数量ETS table还是mnesia RAM table?是否存在特定的表大小,如果超过则会导致整个VM崩溃?不要ETS TablesMnesia RAM Tables只要底层操作系统允许它增长到任何金额是多少?我听说过Mnesia Table Limit2 or 4GB,但我认为这是对磁盘表.

那将需要处理大量的内存数据的未来应用的一个典型例子是OLAP Systems,Real Time analytics,Social Gaming等在这种思路已经激发了这个问题.

unix linux windows erlang mnesia

4
推荐指数
1
解决办法
779
查看次数

在erlang进程之间发送消息:Atoms vs Binaries

当我将原子作为信息发送时,原子是否从一个过程复制到另一个过程?我的想法是,因为这个原子已经存在于VM中,所以不必复制.我知道从一个进程发送到另一个进程时二进制文件更有效.

如果我发送一个触发器消息,从一个进程到另一个进程的常量消息,最好使用:atom或binary?

erlang mnesia elixir erlang-shell

4
推荐指数
1
解决办法
181
查看次数

为什么在 Erlang/OTP 20 上评估这个列表理解需要太长时间?

找到总和 = 100 的任何 5 个数字。这可以在循环中完成,但我向朋友展示了列表理解,结果发现这在我的 Mac Book Pro、酷睿 i7、2.2GHz 上需要 30 多分钟

[[A,B,C,D,E] || A <- lists:seq(1,100),B <- lists:seq(1,100),C <- lists:seq(1,100),D <- lists:seq(1,100),E <- lists:seq(1,100),(A + B + C + D + E) == 100]

如果将问题更改为连续的 5 个数字,则构建的列表理解甚至需要更长的时间。如果我要使用列表理解来解决这个问题,我做得对吗?如果是,为什么需要太长时间?请提供一个可能更快的解决方案,也许使用循环。

erlang

4
推荐指数
2
解决办法
216
查看次数