随笔分类 -  erlang

摘要:在《Erlang/OTP 并发编程实战》中,对 epmd 有如下描述: epmd 代表 Erlang 端口映射守护进程(Erlang Port Mapper Daemon)。 每启动一个节点,都会检查本地机器上是否运行着 epmd ,如果没有,节点就会自行启动 epmd 。 epmd 会追踪在本地机 阅读全文
posted @ 2018-11-09 10:47 孤独信徒 阅读(3974) 评论(0) 推荐(0)
摘要:1)erlang的节点无法ping通。 一般影响erlang节点互ping的因素大致有如下几个: a) 设置相同的cookie; b) 防火墙关闭; 两个server节点和 mnesia节点互ping的过程中,首先设置了相同的cookie,其中一台物理机上的server1节点设置相同的cookie后 阅读全文
posted @ 2018-10-31 15:08 孤独信徒 阅读(219) 评论(0) 推荐(0)
摘要:在erlang杀手级应用rabbitmq中,不难发现,有一个gen_server2.erl模块。而在rabbitmq中,gen_server2.erl是对gen_server.erl模块的重写。 RabbitMQ重新实现了gen_server -> gen_server2。 很多Module都是用了 阅读全文
posted @ 2018-08-22 15:24 孤独信徒 阅读(788) 评论(0) 推荐(0)
摘要:我们把任务分为计算密集型和IO密集型,erlang作为IO密集型的语言,适合网关等相关的场景,而对计算达到某一量级后,可能处理效率下降的很明显。 erlang不适合数值计算。erlang是解释型的,虽然现在的解释器能够编译代码,但是还是太慢。 计算密集型任务的特点是要进行大量的计算,消耗CPU资源, 阅读全文
posted @ 2018-08-22 11:27 孤独信徒 阅读(673) 评论(0) 推荐(0)
摘要:1 -module(get_prime). 2 3 -compile(export_all). 4 5 test_cost_time(N) -> 6 % N为传入具体的数量,这里使用erlang自带的timer:tc测试所消耗时间 7 timer:tc(?MODULE,get_prime,[N]). 阅读全文
posted @ 2018-08-22 11:20 孤独信徒 阅读(404) 评论(0) 推荐(0)
摘要:好几年前,做个测试场景,在一个main_sup下挂载sup和worker,在sup下动态挂载worker。压测: 动态挂载多少个woker。 测试加压机:1)硬件: 8核16G; 2) 方式:rpc:cast/4,rpc异步接收 erlang VM 启动参数设置: a). 开了2W个ets表, +E 阅读全文
posted @ 2018-08-20 14:45 孤独信徒 阅读(331) 评论(0) 推荐(0)
摘要:说起爬虫,大家第一印象就是想到了python来做爬虫。其实,服务端语言好些都可以来实现这个东东。 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。 我们可以通过erlang 来实现这样一个简单的爬虫功能。下面就看看如 阅读全文
posted @ 2018-08-16 18:26 孤独信徒 阅读(763) 评论(0) 推荐(0)
摘要:一般面试会遇到问一些算法,什么排序,树,图等等,冷不丁还会问几个蛋疼的问题,我估计生产情况十有八九都用不上,只是题目罢了。 题目:求两个大数的最大公约数。 什么是最大公约数呢? 百度百科的答案这样的:最大公约数,指两个或多个整数共有约数中最大的一个。 大白话就是,(小学数学学过的)就是能被多个整数整 阅读全文
posted @ 2018-08-14 17:35 孤独信徒 阅读(657) 评论(0) 推荐(0)
摘要:erlang的实现一个简单的进程池。 erlang进程是非常轻量级的,这个进程池的主要目的是用一种通用的方式去管理和限制系统中运行的资源占用。当运行的工作者进程数量达到上限,进程池还可以把任务放到队列中,只要进程资源被释放,排队的任务就能获得运行,否则任务只能阻塞。 这是进程池的监督树 ppool_ 阅读全文
posted @ 2018-08-14 15:35 孤独信徒 阅读(719) 评论(0) 推荐(0)
摘要:声明:本片文章是由Hackernews上的[Erlang Garbage Collection Details and Why ItMatters][1]编译而来,本着学习和研究的态度,进行的编译,转载请注明出处。 Erlang需要解决的重要问题之一就是为实现极高响应能力的软实时系统创建平台。这样的 阅读全文
posted @ 2018-08-14 14:49 孤独信徒 阅读(686) 评论(0) 推荐(0)
摘要:-module(tree1). -export([test1/0]). lookup(Key,nil) -> not_found; lookup(Key,{Key,Value,_,_}) -> {found,Value}; lookup(Key,{Key1,_,Smaller,_}) when Key lookup(Key,Smaller); looku... 阅读全文
posted @ 2018-08-13 10:45 孤独信徒 阅读(413) 评论(0) 推荐(0)
摘要:【递归和循环】 题目: 大家都知道斐波那契数列,现在要求输入一个整数N,请输出斐波那契数列的第N项,以及前N项。 如:N <=39 下面是斐波那契数列的实现: 典型的数学归纳法,递归算法。 下面是尾递归的实现。运行时间和效率远远高于上面递归算法。可以timer:tc/3自测 尾递归相比递归的好处,一 阅读全文
posted @ 2018-07-27 15:24 孤独信徒 阅读(842) 评论(0) 推荐(0)
摘要:二话不说,直接上代码 阅读全文
posted @ 2018-06-26 14:51 孤独信徒 阅读(1182) 评论(0) 推荐(0)
摘要:【排序算法】-module(sort). -compile(export_all). %%快速排序 qsort([]) -> []; qsort([Pivot|T]) -> qsort([X || X = Pivot]). %%冒泡排序 bubble_sort(L) -> bubble_sort(L,len(L)). bubble_sort(L,1) -> L; ... 阅读全文
posted @ 2018-06-20 13:50 孤独信徒 阅读(1593) 评论(0) 推荐(0)
摘要:在程序中,难免用的二进制和十进制之间的转换。遇到一个场景,通过ip和子网掩码,计算地址范围。 而地址范围为:网络地址+1—— 广播地址 -1 . 网络地址即ip和子网掩码的与的位运算。广播地址为:网络地址的主机位全部换成1。 打个比方: IP为: 192.168.0.0 /16 ,这里,/16表示前 阅读全文
posted @ 2018-01-19 15:11 孤独信徒 阅读(494) 评论(0) 推荐(0)
摘要:有一次,在启动ejabberd的时候,报错如下: 阅读全文
posted @ 2017-11-15 23:20 孤独信徒 阅读(1113) 评论(0) 推荐(0)
摘要:app登录,登录的密码要用DES加密,服务器是用erlang,客户端要同时支持多平台(Android、iOS)。首先,Java端的DES加密的实现方式, 少说废话了,直接上代码,如下: public class DES { private static byte[] iv = { 1, 2, 3, 阅读全文
posted @ 2017-11-12 15:24 孤独信徒 阅读(845) 评论(0) 推荐(0)
摘要:注意,这里只是给出一个总结,具体性能需要根据实际环境和需要来确定 霸爷指出,新的erlang虚拟机有很多调优启动参数,今后现在这个方面深挖一下。 1. 进程标志设置: 消息和binary内存:erlang:process_flag(min_bin_vheap_size, 1024*1024),减少大 阅读全文
posted @ 2017-07-20 14:00 孤独信徒 阅读(2793) 评论(0) 推荐(0)
摘要:连接池驱动,pooler 在使用中会报错" error_no_members" 分析:可能有以下3个地方对其有影响: 1)member 可能没回收; 2)wait_for_pool 的超时时间太短,可以适当调大; 3)pooler的member数量太小,可以适当调大。 阅读全文
posted @ 2017-07-03 11:33 孤独信徒 阅读(296) 评论(0) 推荐(0)
摘要:1.RSA介绍 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对 其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可发布的供任何人使用, 私钥则为自己所有,供解密之用。解密者拥有私钥,并 阅读全文
posted @ 2017-06-14 21:07 孤独信徒 阅读(1195) 评论(0) 推荐(0)