03 2015 档案

erl_0021 erlang和java的内存模型比较(引用)
摘要:原文http://deepinmind.iteye.com/blog/2030390我读到一篇相当相当有趣的关于Erlang VM内存管理策略的文章。它是Jesper Wilhelmsson写的一篇论文,我觉得有必要讨论一下Erlang和Oracle的Java虚拟机在内存管理方面的不同之处。对于从没... 阅读全文

posted @ 2015-03-24 10:06 骄傲的小笨蛋 阅读(291) 评论(0) 推荐(0)

erl_0020 《面对软件错误构建可靠的分布式系统》读书笔记001 “面向并发COPL”
摘要:在现实世界中,顺序化的(sequential)活动非常罕见。当我们走在大街上的时候,如果只看到一件事情发生的话我们一定会感到不可思议,我们期望碰到许多同时进行的活动。 如果我们不能对同时发生的众多事件所造成的结果进行分析和预测的话,那么我们将会面临巨大的危险,像开车这类的任务我们就不可能完成了... 阅读全文

posted @ 2015-03-21 14:08 骄傲的小笨蛋 阅读(278) 评论(0) 推荐(0)

erl_0019《硝烟中的erlang》 读书笔记005 “进程信息"
摘要:对一个运行中的Erlang系统来说,进程绝对是重要的组成部分。正因为进程是所有运行实体的基础,因此会想去了解它们的更多信息。幸运的是,VM提供了大量的可用信息,其中有些可以安全使用,有些在生产环境中使用是不安全的(因为会返回非常大的数据集合,拷贝到shell以及打印所需的内存量会造成节点崩溃)。... 阅读全文

posted @ 2015-03-20 14:56 骄傲的小笨蛋 阅读(236) 评论(0) 推荐(0)

erl_0018 erlang_看门狗001_“内存大量占用检测及解决办法”
摘要:绪:erlang出现问题百分之六七十在于内存问题,“进程消息队列爆炸”、“进程堆栈持续增长”工具:erlang:memory(),erlang:system_info(process_count)、etop1、查看进程数量、查看内存占用情况2、spawn(fun() -> etop:start([{... 阅读全文

posted @ 2015-03-19 10:45 骄傲的小笨蛋 阅读(253) 评论(0) 推荐(0)

erl_0017 《硝烟中的erlang》 读书笔记004 “锁和阻塞”
摘要:如果某个进程需要持续地接收新任务,那么其在执行耗时过长的锁或者阻塞操作时,就会出现问题。 最为常见的例子之一就是:某个进程使用了TCP socket,阻塞在了接收新的连接或者等待消息上面。在执行此类阻塞操作时,消息会不受限制地堆积在消息队列中。 一个更为糟糕的例子是我曾经为lhttpc库的某个... 阅读全文

posted @ 2015-03-18 16:09 骄傲的小笨蛋 阅读(270) 评论(0) 推荐(0)

erl_0016 《硝烟中的erlang》 读书笔记003 “error_logger 爆炸”
摘要:error_logger爆炸 具有讽刺意味的是,负责错误日志的进程竟然是最为脆弱的之一。在Erlang的缺省安装中,error_logger39负责记录日志(写入磁盘或者发送到网络上),它的速度要比错误产生的速度慢得多。尤其是在记录用户产生的日志消息(不是错误)或者大量进程崩溃时,更是如此。对于前... 阅读全文

posted @ 2015-03-18 15:58 骄傲的小笨蛋 阅读(303) 评论(0) 推荐(0)

erl_0015 《硝烟中的erlang》 读书笔记002 “为过载做计划”
摘要:为过载做计划到目前为止,我在实际工作中所碰到最常见的错误,基本上都是节点内存耗尽。而且通常都和过长的消息队列有关37。解决这类问题的方法有很多,不过只有在深入、全面的理解系统后,才能做出正确的选择。 基本上,我从事的所有项目都可以简化类比成一个非常大的浴室水槽。用户请求和数据从龙头流入。Erlan... 阅读全文

posted @ 2015-03-18 15:54 骄傲的小笨蛋 阅读(232) 评论(0) 推荐(0)

erl_0014 《硝烟中的erlang》 读书笔记001 “绪论”
摘要:1、大家听说Erlang,往往是因为其对高并发的良好支持。其实,Erlang的核心特征是容错,从某种程度上讲,并发只是容错这个约束下的一个副产品。容错是Erlang语言的DNA,也是和其他所有编程语言的本质区别所在。2、从某种意义上讲,Erlang不仅是一门编程语言,更是一个系统平台。它不仅提供了开... 阅读全文

posted @ 2015-03-18 15:38 骄傲的小笨蛋 阅读(280) 评论(0) 推荐(0)

erl_0013 erlang 带参数模块 parameterized modules are no longer supported
摘要:code:-module(mod_test, [Name]).-export([show/0]).show() -> io:format("show:~p~n",[Name]).-------------------------------编译报错:parameterized modules ar... 阅读全文

posted @ 2015-03-18 12:01 骄傲的小笨蛋 阅读(391) 评论(0) 推荐(0)

erl_0012 timer:tc 测试模块函数调用运行耗时
摘要:timer:tc 可以测试出函数调用耗时,是erlang性能测试的好工具。timer:tc(?MODULE, Fun, [Args]). 阅读全文

posted @ 2015-03-17 15:22 骄傲的小笨蛋 阅读(279) 评论(0) 推荐(0)

erl_0011 erlang 定时器相关
摘要:转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20764167&id=44701243.1 ThetimermoduleCreating timers usingerlang:send_after/3anderlang:star... 阅读全文

posted @ 2015-03-17 15:17 骄傲的小笨蛋 阅读(250) 评论(0) 推荐(0)

erl0010 - erlang查看ets 当前系统使用情况和当前配置上限
摘要:1、限制:erlang官网给出了ets的默认上限:“The default is 1400, can be changed with the environment variable ERL_MAX_ETS_TABLES.”也就是说但节点上如果不进行配置,那么ets表最大是1400. 2、查看... 阅读全文

posted @ 2015-03-17 10:49 骄傲的小笨蛋 阅读(429) 评论(0) 推荐(0)

erl0009 - erlang 读取时间瓶颈解决办法
摘要:读取时间erlang提供有两种方式: 1、erlang:now(); 2、os:timestamp(); 以上两种方式由于erlang系统需要保证读取精度,当并发读取的时候会引起加锁。系统频繁读取时间将会带来性能上的一定开销; 为避免这种不必要的开销,可以采用一种折中的办法------“低精... 阅读全文

posted @ 2015-03-16 16:50 骄傲的小笨蛋 阅读(223) 评论(0) 推荐(0)

erl0008 - unicode 和 utf-8之间的关系
摘要:转载:http://blog.jobbole.com/84903/原文出处:卢钧轶欢迎分享原创到伯乐头条本文将简述字符集,字符编码的概念。以及在遭遇乱码时的一些常用诊断技巧。背景:字符集和编码无疑是IT菜鸟甚至是各种大神的头痛问题。当遇到纷繁复杂的字符集,各种火星文和乱码时,问题的定位往往变得非常困... 阅读全文

posted @ 2015-03-16 15:57 骄傲的小笨蛋 阅读(281) 评论(0) 推荐(0)

erl0007 - erlang 远程节点连接的两种方式
摘要:启动连接:erl -setcookie abc -name xxx@192.168.x.x -remsh xxx@192.168.x.y退出:ctrl + g,q参考:http://www.cnblogs.com/me-sa/archive/2012/01/18/erlang0033.html转:h... 阅读全文

posted @ 2015-03-13 16:59 骄傲的小笨蛋 阅读(1948) 评论(0) 推荐(0)

erl0006 - erlang 查看进程状态,查看当前系统那些进程比较占资源
摘要:http://lfstar.blog.163.com/blog/static/56378987201341115037437/查看哪些进程占用内存最高? > spawn(fun() -> etop:start([{output, text}, {interval, 1}, {lines, 20}, ... 阅读全文

posted @ 2015-03-12 20:38 骄傲的小笨蛋 阅读(487) 评论(0) 推荐(0)

erl0005 - mnesia 分布式部署
摘要:http://www.iteye.com/topic/6431871、启动两个互通的节点a、b;2、在a节点net_adm:ping(b) 查看ab之间是否联通(nodes())。3、在保持通的情况下a节点插入数据到数据库(必须把表建立成多节点分布式的表)4、b节点 mnesia:start()启动... 阅读全文

posted @ 2015-03-11 10:44 骄傲的小笨蛋 阅读(147) 评论(0) 推荐(0)

导航