12 2013 档案

摘要:这是一篇流水账,记录了优化一个对 binary 操作的 Erlang 程序,然后发现真正瓶颈所在的过程。本文纯粹是流水账,没有什么结论,只是觉得 Erlang 很好玩:) 阅读全文
posted @ 2013-12-22 16:51 siyao 阅读(11203) 评论(4) 推荐(6) 编辑
摘要:在对 Erlang 虚拟机做 profiling 的时候,发现在 Vtune 中会出现源代码和汇编指令映射错误的现象。本文分析了这种映射错误的原因,那就是在源码文件中 #include 了另外的源码,所以编译器记录的是另外源码的行号。解决方法是手工将被 #include 的源码文件拷贝到被分析的源码中。 阅读全文
posted @ 2013-12-07 23:48 siyao 阅读(2221) 评论(0) 推荐(1) 编辑
摘要:本文简单探讨了一下 Erlang 调度器发生进程抢占的条件,然后通过示例展示 Erlang 在大部分情况下都是能做到软实时的,但是在某些极端情况下一些 misbehave 的进程会阻塞整个调度器。本文不纠细节,只是提供一个感性的认识。 阅读全文
posted @ 2013-12-01 22:47 siyao 阅读(2685) 评论(3) 推荐(0) 编辑
摘要:本系列介绍 Erlang 语言中使用的各种数据类型以及这些数据类型在 Erlang 虚拟机内部的表示和实现。了解数据类型的实现可以帮助大家在实际开发过程中正确选择数据类型,并且可以更好更高效地操作这些数据类型。本文对 Erlang 数据类型及实现的总结目前是最全面的,可以作为 Erlang 数据结构的参考手册。尽管我写的内容都试图在各种参考资料和 Erlang 虚拟机源代码中验证,但是难免会有理解错误或各种低级错误,希望大家指正,也希望能对 Erlang 爱好者们有帮助。第五部分:binary。 阅读全文
posted @ 2013-12-01 18:15 siyao 阅读(7696) 评论(7) 推荐(1) 编辑
摘要:本系列介绍 Erlang 语言中使用的各种数据类型以及这些数据类型在 Erlang 虚拟机内部的表示和实现。了解数据类型的实现可以帮助大家在实际开发过程中正确选择数据类型,并且可以更好更高效地操作这些数据类型。本文对 Erlang 数据类型及实现的总结目前是最全面的,可以作为 Erlang 数据结构的参考手册。尽管我写的内容都试图在各种参考资料和 Erlang 虚拟机源代码中验证,但是难免会有理解错误或各种低级错误,希望大家指正,也希望能对 Erlang 爱好者们有帮助。第四部分:boxed 对象。 阅读全文
posted @ 2013-12-01 18:12 siyao 阅读(4490) 评论(3) 推荐(0) 编辑