1、mnesia表与ets表记录的差别
mnesia表记录查询后会带有表名,ets表查出的记录是不带表名的。
2、gen_server的handle_call使用
handle_call是同步调用,必须有返回值,在handle_call中执行的任务不能占有太多的时间,否则客户端因无法及时得到返回值会报异常,因过测试handle_call执行任务时间不能大于5s。如果要执行大任务,采用handle_cast来完成。
3、代码调试技巧
当erlang虚拟机启动后,如果在虚拟机上运行的代码模块有所变动时,由于虚拟机有自己的缓存机制,里面仍然存放的是旧的代码,比较原始的方法是关闭虚拟机,重新执行,为了不关闭虚拟机,仍让虚拟机识别到最新的代码,通过code:load_file(Module_name)来实现,该函数执行会把新代码与旧的putmerge,加快调试效率。