[ErloungIV]ZQ 现场流水报道{OT}

0 views
Skip to first unread message

Zoom.Quiet

unread,
Nov 6, 2009, 8:43:43 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
091107::
~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
~09:33 成立涛 - Erlang开发实践
N多内容,包含了所有 erl 开发过程中的所有关键实践体验..

--
http://zoomquiet.org 人生苦短? Pythonic!
usage 7-zip to replace WinRAR/WinZip; You can get the truely Freedom 4 software.

Zoom.Quiet

unread,
Nov 6, 2009, 8:46:57 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~09:45 讲演的幻灯在:
http://ecug.googlecode.com/svn/trunk/cn-erlounge/iv/litao.cheng/
当然提及OTP, gen_server 在实践中占到80% 的代码覆盖率,而且其它常用模式也都可用 gen_server 模拟出来!

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

金山常年招聘Py/C++人才! http://bit.ly/UoTV 简历直投俺就成;-)

Zoom.Quiet

unread,
Nov 6, 2009, 8:52:03 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
- erl 进程是种抽象概念,是应用的最小单位
- 不要在gen_server 中进行复杂的处理,以免引发阻塞
- 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
- 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

向靠谱,反脑残! Kaopulity,小白退散! [Kaopulity~= Keep all processes usablity!]

Zoom.Quiet

unread,
Nov 6, 2009, 8:55:02 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
- appmon 内置的应用进程关系观察工具
- 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!

2009-11-07-095449_570x472_scrot.png

Zoom.Quiet

unread,
Nov 6, 2009, 8:58:42 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
- 遗憾的是:只能编译.erl 的,无法依赖支持
- 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
- 而且可移植!...

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

流程是对先前蠢行的内在反应! ~ Clay Shirky (Process is an embedded reaction to prior
stupidity)http://bit.l...

Zoom.Quiet

unread,
Nov 6, 2009, 9:04:17 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
- 遗憾的是:edoc 对中文支持不好
- 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Time is unimportant, only life important!

Zoom.Quiet

unread,
Nov 6, 2009, 9:18:07 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~10:13 erl 开发中的逻辑问题解决...
- 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
- 使用定制的 dialyzer 测试脚本,定位常见问题...
- 进一步的,充分使用 EUnit 是个好思路...

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

过程改进乃是催生可促生靠谱的人的组织! (ProcessEnhancement keeps evolving organizations
which promoting people b...

Zoom.Quiet

unread,
Nov 6, 2009, 9:51:58 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~10:50 锋爷:Erlang应用优化指南
- 网游公司,用erl 开发平台!
- 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
- Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
- 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%


2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

KM乃是培育可催生自学习型组织的文化氛围! (KM=Knowledge Management=知识管理)

Zoom.Quiet

unread,
Nov 6, 2009, 10:03:29 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~10:57 erl应该来作什么?
- I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
- 为了证明这一感觉,进行了真实的OS 对比
- 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

工作的层次(依靠谱程度从低到高)=有做->做完->做对->做好->帮助他人做好

2009-11-07-110244_649x527_scrot.png

Zoom.Quiet

unread,
Nov 6, 2009, 10:11:08 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
- 智能的进行了逻辑CPU 间的协同调度..
- erl进程是使用操作系统的真实线程
- 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
- 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...


2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 6, 2009, 10:14:45 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~11:11 OS方面的选择优化:
- 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
- RHEL 致力于高性能的挖掘>..
- 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
- 绝大多数erl 死亡都是内存耗光...

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Free as in Freedom! 哲思社区:http://zeuux.com

Zoom.Quiet

unread,
Nov 6, 2009, 10:21:36 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
- 可以省略很多系统特性
- 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 6, 2009, 10:33:29 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~12:00 业务方面的优化:
- 小消息大计算!
- IO和计算的时间开销比,就是应用的性能收益比!
- 对CPU和内存及早进行明显的分配!
- 将业务和实际CPU 对应上,以免引发切换时间消耗...
- 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
- 多用ets ~ 大数据量推荐
- tuple/list/array 只能应作小数据量
- 尽量 *无锁结构*

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

KM乃是培育可催生自学习型组织的文化氛围! (KM=Knowledge Management=知识管理)

Zoom.Quiet

unread,
Nov 6, 2009, 10:44:30 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~11:40 性能测量的关注:
+ erl/Erts/OS 的热点
- systemtap ~ 非入侵式旁观
- Erlang 工具集,非常丰富,非常关注内存的分配...
- 十多种调度模式
- 200多种内存锁 lockcounter 就可以观察到问题集中点
- dbg ~ "ETrace";-)
... snmp 综合运行期情况
+ 延迟变化
+ 响应时间的抖动


2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

2009-11-07-114401_545x530_scrot.png

Zoom.Quiet

unread,
Nov 6, 2009, 10:52:26 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~11:49 总结优化最佳体验
- 多用:
+ list comprehension
+ iolist /gather write
+ Binart > 256时,才引用计数(不用复制的!)
+ Hipe_bif 也可以考虑
- 不要用昂贵的BIF:
- now()
- io_lib:format

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 6, 2009, 11:00:53 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~11:59 CPU亲缘性利用!
- Taskset ~ 如果业务明确后,令CPU 对于业务运行从来没有竞争锁,性能将提高 50%以上!
- 启动OS的内置特性
+ Futex
+ VDSO
+ TCP/IP 协议桟...
- 大文件句柄(只应微调,根据业务的) 有两面性.. port 等数据结构会自动调整,引发意外操作..
- 基于测试的持续调优!


2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 6, 2009, 11:10:08 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~12:05 可诊断的系统
- 有内部信息暴露的,参数可动态调节的!
- 测试自动的,有高压力环境的
- 尽可能的发挥 erts 的优势::
+ 用Ports 整合不同语言系统
+ 用 driver 改写关键性能苛求部分
+ 使用标准协议方便erl 自然处理(Asn.1),使用内置的高级特性...
- 锁是实际存在的...
+ 尽量减少这方面的代码...

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 6, 2009, 11:26:04 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~12:17 Q&A:
- Q:ets 的使用策略?
- A:策略!业务决定,在理解erl运行本质后,就容易判决了...

- Q:百万级应用中,总是有单点node 怎么搞?
- A:OTP 本身就一直存在这种问题!
+ 尝试使用多个进程来解决
+ 建议在另外一个VM 中进行处理...进行批量的消息移交(共享内存...),而且可以不用erl 的消息处理
- xiu+A:如果请求间关联不大时,可以使用进程池;
+ 如果有关联时(同资源操作时),晚上有说

- Q:小消息原则,怎么把握?
- A:是指消息传递开销小! <5ms
- 消息传递时间和计算时间比例 > 1:10 才有意义

- Q:DB方面的操作有不?
- A:有很多:
+ ets 内存DB;
+ Monisa 内置K/V DB
+ 外部关系数据库的支持不在Erl 哲学中...


2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!

Zoom.Quiet

unread,
Nov 6, 2009, 11:39:02 PM11/6/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~12:30 热烈的进行提问,锋爷的实战体验分享,引爆了好奇心...
- Q: 加密怎好?
- A: driver 沟通外部NB模块!
- Q: 小消息原则应用策略?
- A: cfg 要特别关注...(原先的 get 方式消耗非常不合算)
+ 先 ets 读入 cfg ,并代理进行维护
+ 其它进程来读ets
- ~ 分享自个儿的经验:
+ 关系DB 的访问,策略
- MySQL 的erl 驱动可以用
- 先用erl 的DB
- 尽量用 存储过程来计算
+ Asn.1 的标准比 SOAP 要靠谱!得多用!
- 门槛是 概念和一般的不同
- 电信工业标准,资料也少...


2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 7, 2009, 1:10:56 AM11/7/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~14:00 xiu shiwei引言,预告明日的沙龙...

~14:09 老范 开讲EB:
- 先用实况录像来开始,讲解EB 的实际情景
- 有机会使用Erl 的情景非常稀少,所以,通过一个简单的程序智力游戏实例来学习,有效,而且可行

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 7, 2009, 1:27:51 AM11/7/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~14:25 EB架构的演化:
- 无名 ets 表,发布战场时况
- 各种游戏运营过程中的情景
- 同时行动时的内置顺序聲明
- 战队算法>..

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!

Zoom.Quiet

unread,
Nov 7, 2009, 2:30:01 AM11/7/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~15:27 Stewart Mackenzie - An Erlang Implementation of Restms
- 来自HK 的年轻程序员; 用白人的特色表情,夸张的开始自个儿的 erl 体验分享
- 也是从Python/Django 过来的,最后选择了 erl 挑战自个儿,对 消息的处置方式...
- erl 是有近20年的历史了, OTP 却没有被所有人及时的认可...
- 消息的现实需求和技术解决历史...

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 7, 2009, 2:41:17 AM11/7/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~15:40 RestMS 开始忽悠:
- Twitter 曰: RestMS=AMQP+AtomPub
- 工作场景基本是对订阅的各种消息进行集约化的处理
- 并基于路由算法快速使用各种规则进行聚合!
- 当然的基于HTTP 协议的


2009/11/7 Zoom.Quiet <zoom....@gmail.com>:


> ~15:27 Stewart Mackenzie - An Erlang Implementation of Restms
>    - 来自HK 的年轻程序员; 用白人的特色表情,夸张的开始自个儿的 erl 体验分享
>    - 也是从Python/Django 过来的,最后选择了 erl 挑战自个儿,对 消息的处置方式...
>    - erl 是有近20年的历史了, OTP 却没有被所有人及时的认可...
>    - 消息的现实需求和技术解决历史...
>
>
>
> 2009/11/7 Zoom.Quiet <zoom....@gmail.com>:
>> ~14:25 EB架构的演化:
>>    - 无名 ets 表,发布战场时况
>>    - 各种游戏运营过程中的情景
>>    - 同时行动时的内置顺序聲明
>>    - 战队算法>..
>>
>> 2009/11/7 Zoom.Quiet <zoom....@gmail.com>:
>>> ~14:00 xiu shiwei引言,预告明日的沙龙...
>>>
>>> ~14:09 老范 开讲EB:
>>>    - 先用实况录像来开始,讲解EB 的实际情景
>>>    - 有机会使用Erl 的情景非常稀少,所以,通过一个简单的程序智力游戏实例来学习,有效,而且可行
>>>

--
http://zoomquiet.org 人生苦短? Pythonic!

Zoom.Quiet

unread,
Nov 7, 2009, 3:01:08 AM11/7/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~15:50 RestMS.org
- fireflymq 是 RestMQ 的erl 实现
- Riak 当然的也支持 MapReduce 模式的计算...
- Links 式的发布和消息組織形式支持的!

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 7, 2009, 3:05:05 AM11/7/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~16:05 创建自个儿的web应用时的思索:
- RabbitMQ 是 AMQP 的实现
- RestMQ 是新标准
- Riak 是RestMQ 的可用实现之一
- fireflymq 是...


2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 7, 2009, 3:26:56 AM11/7/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~16:25 T1(金尹) - CUDA Programming,一次异域之旅
- 先澄清 并行和并发计算的不同!
- 神曲的插图... 反云计算的思考!


2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

KM乃是培育可催生自学习型组织的文化氛围! (KM=Knowledge Management=知识管理)

Zoom.Quiet

unread,
Nov 7, 2009, 3:46:27 AM11/7/09
to ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
~16:30 CUDA 加速jepg 的压缩
- Erl/OpenMP/Cilk/TBB 粗颗粒并行
- GPGPU/CUDA/OpenCL...精密并行
- Coarse Gained us 級别
- Fine Gained ns 級别
- 进入 Bit世界,离开 Bety 级别!
- "普朗克尺度"
- 这时的编程是量子体验的,几乎所有的原有编程体验都不靠谱的!

2009/11/7 Zoom.Quiet <zoom....@gmail.com>:

Zoom.Quiet

unread,
Nov 7, 2009, 3:57:54 AM11/7/09
to Zhou Sutra, ECUG~erlang中文用户组, zeuux-universe, Python.cn@google, guangzhou-...@googlegroups.com, sz...@googlegroups.com, TopLanguage]列表
2009/11/7 Zhou Sutra <zhous...@gmail.com>:
> 天那从早上9点轰炸到下午5点了。
>
> 能不能不用邮件列表进行实时报道?
> 我订阅了那么多邮件列表,如果每个邮件列表都进行实时报道,我岂不是要疯掉。
>
嗯嗯嗯,到现在就俺这么作过几次,
我们的列表订阅重复的太厉害了,
好的集中到 ECUG 先,,

>> _______________________________________________
>> zeuux-universe mailing list
>> zeuux-u...@zeuux.org
>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>
>> ZEUUX Project - Free Software, Free Society!
>> http://www.zeuux.org
>
>

--
http://zoomquiet.org 人生苦短? Pythonic!

Reply all
Reply to author
Forward
0 new messages