摘要:
1.用vi打开指定文本文件:vi filename.c2.按 Esc 键,进入命令模式;3.按 : 键 (按 Shift 键不放后,同时按 : 键)进入命令输入状态;4.在冒号后输入:%s/^M//g注:^M是一个字符不是输入^和M两个字符, 即按住 Ctrl 键不放,同时按 V 键产生^,依然按... 阅读全文
2015年5月20日
2015年4月23日
摘要:
{ "folders": [ { "follow_symlinks": true, "path": ".", "folder_exclude_patterns": ["build"] } ... 阅读全文
2015年3月24日
摘要:
原文http://deepinmind.iteye.com/blog/2030390我读到一篇相当相当有趣的关于Erlang VM内存管理策略的文章。它是Jesper Wilhelmsson写的一篇论文,我觉得有必要讨论一下Erlang和Oracle的Java虚拟机在内存管理方面的不同之处。对于从没... 阅读全文
2015年3月21日
摘要:
在现实世界中,顺序化的(sequential)活动非常罕见。当我们走在大街上的时候,如果只看到一件事情发生的话我们一定会感到不可思议,我们期望碰到许多同时进行的活动。 如果我们不能对同时发生的众多事件所造成的结果进行分析和预测的话,那么我们将会面临巨大的危险,像开车这类的任务我们就不可能完成了... 阅读全文
2015年3月20日
摘要:
对一个运行中的Erlang系统来说,进程绝对是重要的组成部分。正因为进程是所有运行实体的基础,因此会想去了解它们的更多信息。幸运的是,VM提供了大量的可用信息,其中有些可以安全使用,有些在生产环境中使用是不安全的(因为会返回非常大的数据集合,拷贝到shell以及打印所需的内存量会造成节点崩溃)。... 阅读全文
2015年3月19日
摘要:
绪:erlang出现问题百分之六七十在于内存问题,“进程消息队列爆炸”、“进程堆栈持续增长”工具:erlang:memory(),erlang:system_info(process_count)、etop1、查看进程数量、查看内存占用情况2、spawn(fun() -> etop:start([{... 阅读全文
2015年3月18日
摘要:
如果某个进程需要持续地接收新任务,那么其在执行耗时过长的锁或者阻塞操作时,就会出现问题。 最为常见的例子之一就是:某个进程使用了TCP socket,阻塞在了接收新的连接或者等待消息上面。在执行此类阻塞操作时,消息会不受限制地堆积在消息队列中。 一个更为糟糕的例子是我曾经为lhttpc库的某个... 阅读全文
摘要:
error_logger爆炸 具有讽刺意味的是,负责错误日志的进程竟然是最为脆弱的之一。在Erlang的缺省安装中,error_logger39负责记录日志(写入磁盘或者发送到网络上),它的速度要比错误产生的速度慢得多。尤其是在记录用户产生的日志消息(不是错误)或者大量进程崩溃时,更是如此。对于前... 阅读全文
摘要:
为过载做计划到目前为止,我在实际工作中所碰到最常见的错误,基本上都是节点内存耗尽。而且通常都和过长的消息队列有关37。解决这类问题的方法有很多,不过只有在深入、全面的理解系统后,才能做出正确的选择。 基本上,我从事的所有项目都可以简化类比成一个非常大的浴室水槽。用户请求和数据从龙头流入。Erlan... 阅读全文
摘要:
1、大家听说Erlang,往往是因为其对高并发的良好支持。其实,Erlang的核心特征是容错,从某种程度上讲,并发只是容错这个约束下的一个副产品。容错是Erlang语言的DNA,也是和其他所有编程语言的本质区别所在。2、从某种意义上讲,Erlang不仅是一门编程语言,更是一个系统平台。它不仅提供了开... 阅读全文