- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Erlang实例和ERTS Sequential Erlang(I) Sequential Erlang(II) Sequential Erlang(III) Sequential Erlang(and IV) Concurrent Erlang(I) Concurrent Erlang(and II) Distributed Erlang Error detection(I) Error detection(II) Error detection(and II) Erlang emulator 实现分析 emulator是什么 Erlang vm + bif + 基础设施 整个erlang系统的核心实现 代码成熟度 200K行C代码 几千行Erlang代码 同等的ACE框架 尺寸很小 适合于嵌入式 1.5M 也适合做桌面程序 如p2p emulator的特性 emulator的物理结构 Emulator的运行期 单个smp 多个smp情况 erl_start-erl_init-process_main-schedule-sys_schedule Beam的物理模块 Process Process是调度的单元 轻量设计 无耦合 通过message交换信息 线程协调multi_scheduling 可以按需开N个 scheduler 随时停止所有线程进行维护 内存分配策略 dist Pid(x,y,z) 节点间通讯 透明实现 erl_ext_dist.txt Dist 和 cnode 原理 Info模块 详细的系统运行器信息 erl_crash.dump 丰富的内容 Benchmark 用于测量系统运行器的情况 ets erlang term strorage Hash和tree实现 Match vm 对信号的处理 Eterm数据结构 用指针来分辨类型 内部格式和外部格式 是GC回收 表格和代码生成器 某些表格在源码里面找不到 Make的时候调用utility 程序动态生成的 垃圾回收 针对Process的Message 进行的回收 针对普通的eterm进行的回收 Port Driver Port是erlang程序自己操作的界面 Driver是功能的实现 Io poller是 port和外部通讯的推动力 代码热部署原理 Moudle Driver dll 系统微调 命令行参数 环境变量 运行期信息获取 经常的时候看大型工程的时候 碰到一二个地方实在不明白他是如何运作的 这时候最好的工具就是debugger 如gdb,的backtrace 可以得到完整的函数调用栈。在linux下推荐使用ddd, 俺的centos5 下标准版本没有安装ddd 顺手下载个安装就好了(标准版本却个motif-devel yum下就好)。ddd图形界面方便查看函数和变量,还有点击跳转功能。 附上几个调试erlang的脚本,希望能够方便大家。1.[root@test98 ~]# cat gdb_beam#! /bin/bashddd -x gdb.init /usr/local/lib/erlang/erts-5.5.5/bin/beam 2. [root@test98 ~]# cat gdb.initset arg -- -root /usr/local/lib/erlang -progname erl -- -home /root3.?[root@test98 ~]# tail .bash_profile -n 13export PATH=$PATH:/usr/local/lib/erlang/erts-5.5.5/binROOTDIR=/usr/local/lib/erlangBINDIR=$ROOTDIR/erts-5.5.5/binEMU=beamPROGNAME=`echo $0 | sed ‘s/.*\///’`export EMUexport ROOTDIRexport BINDIRexport PROGNAMEexport EDITOR=vimexport LANG=utf8上面的脚本是针对beam 的。如果你要调试beam.smp beam.hybrid 可以erl -smp true +K true -emu_args 得到参数Executing: /usr/local/lib/erlang/erts-5.5.5/bin/beam.smp /usr/local/lib/erlang/erts-5.5.5/bin/beam.smp -K true -- -root /usr/local/lib/erlang -progname erl -- -
您可能关注的文档
- Eclipse 3.0 RC2 热键表 (中英对照解说版,Default)eclips Java 入门必备全部快捷键副本.doc
- 第二讲:监控属性(Observables).pdf
- Eclipse打包Java应用程序与在Linux系统上的部署运行.pdf
- Eclipse的Junit配置与创建项目.docx
- 第二讲:文字处理软件 Word.ppt
- Eclipse连接SQL+Server+2008数据库知识.doc
- ECMAScript 6 异步操作及Async函数.pdf
- 第二讲+法律要素.ppt
- 第二讲-3 栅格编码1.ppt
- 第二讲-4(拉普拉斯变换).ppt
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)