zeuux-universe  - 讨论区

标题:[zeuux-universe] [ErloungIV]ZQ 现场流水报道{OT}

2009年11月07日 星期六 09:43

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 09:43:43 CST 2009

嗯嗯嗯,因为有人在 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.

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 09:46

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 09:46:57 CST 2009

~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.quiet在gmail.com>:
> 嗯嗯嗯,因为有人在 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.
>



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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 09:52

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 09:52:03 CST 2009

~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
    - erl 进程是种抽象概念,是应用的最小单位
    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~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.quiet在gmail.com>:
>> 嗯嗯嗯,因为有人在 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.
>>
>
>
>
> --
> http://zoomquiet.org 人生苦短? Pythonic!
> 金山常年招聘Py/C++人才! http://bit.ly/UoTV 简历直投俺就成;-)
>



-- 
http://zoomquiet.org 人生苦短? Pythonic!
向靠谱,反脑残! Kaopulity,小白退散! [Kaopulity~= Keep all processes usablity!]

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 09:55

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 09:55:02 CST 2009

~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
    - appmon 内置的应用进程关系观察工具
    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>    - erl 进程是种抽象概念,是应用的最小单位
>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~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.quiet在gmail.com>:
>>> 嗯嗯嗯,因为有人在 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.
>>>
>>
>>
>>
>> --
>> http://zoomquiet.org 人生苦短? Pythonic!
>> 金山常年招聘Py/C++人才! http://bit.ly/UoTV 简历直投俺就成;-)
>>
>
>
>
> --
> http://zoomquiet.org 人生苦短? Pythonic!
> 向靠谱,反脑残! Kaopulity,小白退散! [Kaopulity~= Keep all processes usablity!]
>



-- 
http://zoomquiet.org 人生苦短? Pythonic!
一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!
-------------- 下一部分 --------------
A non-text attachment was scrubbed...
Name: 2009-11-07-095449_570x472_scrot.png
Type: image/png
Size: 43144 bytes
Desc: 不可用
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20091107/9e0c9b36/attachment-0001.png>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 09:58

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 09:58:42 CST 2009

~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
    - 遗憾的是:只能编译.erl 的,无法依赖支持
    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
    - 而且可移植!...

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>    - appmon 内置的应用进程关系观察工具
>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>    - erl 进程是种抽象概念,是应用的最小单位
>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~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.quiet在gmail.com>:
>>>> 嗯嗯嗯,因为有人在 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.
>>>>
>>>
>>>
>>>
>>> --
>>> http://zoomquiet.org 人生苦短? Pythonic!
>>> 金山常年招聘Py/C++人才! http://bit.ly/UoTV 简历直投俺就成;-)
>>>
>>
>>
>>
>> --
>> http://zoomquiet.org 人生苦短? Pythonic!
>> 向靠谱,反脑残! Kaopulity,小白退散! [Kaopulity~= Keep all processes usablity!]
>>
>
>
>
> --
> http://zoomquiet.org 人生苦短? Pythonic!
> 一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!
>



-- 
http://zoomquiet.org 人生苦短? Pythonic!
流程是对先前蠢行的内在反应! ~ Clay Shirky (Process is an embedded reaction to prior
stupidity)http://bit.l...

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 10:04

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 10:04:17 CST 2009

~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
    - 遗憾的是:edoc 对中文支持不好
    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>    - 而且可移植!...
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>    - appmon 内置的应用进程关系观察工具
>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~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.quiet在gmail.com>:
>>>>> 嗯嗯嗯,因为有人在 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.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> http://zoomquiet.org 人生苦短? Pythonic!
>>>> 金山常年招聘Py/C++人才! http://bit.ly/UoTV 简历直投俺就成;-)
>>>>
>>>
>>>
>>>
>>> --
>>> http://zoomquiet.org 人生苦短? Pythonic!
>>> 向靠谱,反脑残! Kaopulity,小白退散! [Kaopulity~= Keep all processes usablity!]
>>>
>>
>>
>>
>> --
>> http://zoomquiet.org 人生苦短? Pythonic!
>> 一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!
>>
>
>
>
> --
> http://zoomquiet.org 人生苦短? Pythonic!
> 流程是对先前蠢行的内在反应! ~ Clay Shirky (Process is an embedded reaction to prior
> stupidity)http://bit.l...
>



-- 
http://zoomquiet.org 人生苦短? Pythonic!
Time is unimportant, only life important!

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 10:18

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 10:18:07 CST 2009

~10:13 erl 开发中的逻辑问题解决...
    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
    - 使用定制的 dialyzer 测试脚本,定位常见问题...
    - 进一步的,充分使用 EUnit 是个好思路...

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>    - 遗憾的是:edoc 对中文支持不好
>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>    - 而且可移植!...
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>    - appmon 内置的应用进程关系观察工具
>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~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.quiet在gmail.com>:
>>>>>> 嗯嗯嗯,因为有人在 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.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> http://zoomquiet.org 人生苦短? Pythonic!
>>>>> 金山常年招聘Py/C++人才! http://bit.ly/UoTV 简历直投俺就成;-)
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> http://zoomquiet.org 人生苦短? Pythonic!
>>>> 向靠谱,反脑残! Kaopulity,小白退散! [Kaopulity~= Keep all processes usablity!]
>>>>
>>>
>>>
>>>
>>> --
>>> http://zoomquiet.org 人生苦短? Pythonic!
>>> 一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!
>>>
>>
>>
>>
>> --
>> http://zoomquiet.org 人生苦短? Pythonic!
>> 流程是对先前蠢行的内在反应! ~ Clay Shirky (Process is an embedded reaction to prior
>> stupidity)http://bit.l...
>>
>
>
>
> --
> http://zoomquiet.org 人生苦短? Pythonic!
> Time is unimportant, only life important!
>



-- 
http://zoomquiet.org 人生苦短? Pythonic!
过程改进乃是催生可促生靠谱的人的组织! (ProcessEnhancement keeps evolving organizations
which promoting people b...

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 10:51

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 10:51:58 CST 2009

~10:50 锋爷:Erlang应用优化指南
    - 网游公司,用erl 开发平台!
    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%


2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~10:13 erl 开发中的逻辑问题解决...
>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>    - 进一步的,充分使用 EUnit 是个好思路...
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>    - 遗憾的是:edoc 对中文支持不好
>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>    - 而且可移植!...
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>    - appmon 内置的应用进程关系观察工具
>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~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.quiet在gmail.com>:
>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>> 091107::
>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..


-- 
http://zoomquiet.org 人生苦短? Pythonic!
KM乃是培育可催生自学习型组织的文化氛围! (KM=Knowledge Management=知识管理)

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 11:03

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 11:03:29 CST 2009

~10:57 erl应该来作什么?
    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
    - 为了证明这一感觉,进行了真实的OS 对比
    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~10:50 锋爷:Erlang应用优化指南
>    - 网游公司,用erl 开发平台!
>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~10:13 erl 开发中的逻辑问题解决...
>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>    - 进一步的,充分使用 EUnit 是个好思路...
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>    - 遗憾的是:edoc 对中文支持不好
>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>    - 而且可移植!...
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>> 091107::
>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..
>




-- 
http://zoomquiet.org 人生苦短? Pythonic!
工作的层次(依靠谱程度从低到高)=有做->做完->做对->做好->帮助他人做好
-------------- 下一部分 --------------
A non-text attachment was scrubbed...
Name: 2009-11-07-110244_649x527_scrot.png
Type: image/png
Size: 270823 bytes
Desc: 不可用
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20091107/ef67e005/attachment-0001.png>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 11:11

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 11:11:08 CST 2009

~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
    - 智能的进行了逻辑CPU 间的协同调度..
    - erl进程是使用操作系统的真实线程
    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...


2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~10:57 erl应该来作什么?
>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>    - 为了证明这一感觉,进行了真实的OS 对比
>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~10:50 锋爷:Erlang应用优化指南
>>    - 网游公司,用erl 开发平台!
>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~10:13 erl 开发中的逻辑问题解决...
>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>    - 而且可移植!...
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>> 091107::
>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..


-- 
http://zoomquiet.org 人生苦短? Pythonic!
Time is unimportant, only life important!

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 11:14

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 11:14:45 CST 2009

~11:11 OS方面的选择优化:
    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
    - RHEL 致力于高性能的挖掘>..
    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
    - 绝大多数erl 死亡都是内存耗光...

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>    - 智能的进行了逻辑CPU 间的协同调度..
>    - erl进程是使用操作系统的真实线程
>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~10:57 erl应该来作什么?
>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>    - 为了证明这一感觉,进行了真实的OS 对比
>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~10:50 锋爷:Erlang应用优化指南
>>>    - 网游公司,用erl 开发平台!
>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>    - 而且可移植!...
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>> 091107::
>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..

-- 
http://zoomquiet.org 人生苦短? Pythonic!
Free as in Freedom! 哲思社区:http://zeuux.com

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 11:21

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 11:21:36 CST 2009

~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
    - 可以省略很多系统特性
    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~11:11 OS方面的选择优化:
>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>    - RHEL 致力于高性能的挖掘>..
>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>    - 绝大多数erl 死亡都是内存耗光...
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>    - 智能的进行了逻辑CPU 间的协同调度..
>>    - erl进程是使用操作系统的真实线程
>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~10:57 erl应该来作什么?
>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>    - 网游公司,用erl 开发平台!
>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>    - 而且可移植!...
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>>> 091107::
>>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..
>




-- 
http://zoomquiet.org 人生苦短? Pythonic!
过程改进乃是催生可促生靠谱的人的组织! (ProcessEnhancement keeps evolving organizations
which promoting people b...

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 11:33

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 11:33:29 CST 2009

~12:00 业务方面的优化:
    - 小消息大计算!
    - IO和计算的时间开销比,就是应用的性能收益比!
    - 对CPU和内存及早进行明显的分配!
        - 将业务和实际CPU 对应上,以免引发切换时间消耗...
    - 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
    - 多用ets ~ 大数据量推荐
    - tuple/list/array 只能应作小数据量
    - 尽量 *无锁结构*

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
>    - 可以省略很多系统特性
>    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~11:11 OS方面的选择优化:
>>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>>    - RHEL 致力于高性能的挖掘>..
>>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>>    - 绝大多数erl 死亡都是内存耗光...
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>>    - 智能的进行了逻辑CPU 间的协同调度..
>>>    - erl进程是使用操作系统的真实线程
>>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>>
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~10:57 erl应该来作什么?
>>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>>    - 网游公司,用erl 开发平台!
>>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>>
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>>    - 而且可移植!...
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>>
>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>>>> 091107::
>>>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..




-- 
http://zoomquiet.org 人生苦短? Pythonic!
KM乃是培育可催生自学习型组织的文化氛围! (KM=Knowledge Management=知识管理)

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 11:44

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 11:44:30 CST 2009

~11:40 性能测量的关注:
    + erl/Erts/OS 的热点
        - systemtap ~ 非入侵式旁观
        - Erlang 工具集,非常丰富,非常关注内存的分配...
            - 十多种调度模式
            - 200多种内存锁 lockcounter 就可以观察到问题集中点
            - dbg ~ "ETrace";-)
            ... snmp 综合运行期情况
    + 延迟变化
    + 响应时间的抖动


2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~12:00 业务方面的优化:
>    - 小消息大计算!
>    - IO和计算的时间开销比,就是应用的性能收益比!
>    - 对CPU和内存及早进行明显的分配!
>        - 将业务和实际CPU 对应上,以免引发切换时间消耗...
>    - 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
>    - 多用ets ~ 大数据量推荐
>    - tuple/list/array 只能应作小数据量
>    - 尽量 *无锁结构*
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
>>    - 可以省略很多系统特性
>>    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~11:11 OS方面的选择优化:
>>>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>>>    - RHEL 致力于高性能的挖掘>..
>>>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>>>    - 绝大多数erl 死亡都是内存耗光...
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>>>    - 智能的进行了逻辑CPU 间的协同调度..
>>>>    - erl进程是使用操作系统的真实线程
>>>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>>>
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~10:57 erl应该来作什么?
>>>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>>>    - 网游公司,用erl 开发平台!
>>>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>>>
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>>>    - 而且可移植!...
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>>>
>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>>>
>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>>>>> 091107::
>>>>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..




-- 
http://zoomquiet.org 人生苦短? Pythonic!
工作的层次(依靠谱程度从低到高)=有做->做完->做对->做好->帮助他人做好
-------------- 下一部分 --------------
A non-text attachment was scrubbed...
Name: 2009-11-07-114401_545x530_scrot.png
Type: image/png
Size: 113351 bytes
Desc: 不可用
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20091107/77ff61e8/attachment-0001.png>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 11:52

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 11:52:26 CST 2009

~11:49 总结优化最佳体验
    - 多用:
        + list comprehension
        + iolist /gather write
        + Binart > 256时,才引用计数(不用复制的!)
        + Hipe_bif 也可以考虑
        - 不要用昂贵的BIF:
            - now()
            - io_lib:format

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~11:40 性能测量的关注:
>    + erl/Erts/OS 的热点
>        - systemtap ~ 非入侵式旁观
>        - Erlang 工具集,非常丰富,非常关注内存的分配...
>            - 十多种调度模式
>            - 200多种内存锁 lockcounter 就可以观察到问题集中点
>            - dbg ~ "ETrace";-)
>            ... snmp 综合运行期情况
>    + 延迟变化
>    + 响应时间的抖动
>
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~12:00 业务方面的优化:
>>    - 小消息大计算!
>>    - IO和计算的时间开销比,就是应用的性能收益比!
>>    - 对CPU和内存及早进行明显的分配!
>>        - 将业务和实际CPU 对应上,以免引发切换时间消耗...
>>    - 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
>>    - 多用ets ~ 大数据量推荐
>>    - tuple/list/array 只能应作小数据量
>>    - 尽量 *无锁结构*
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
>>>    - 可以省略很多系统特性
>>>    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~11:11 OS方面的选择优化:
>>>>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>>>>    - RHEL 致力于高性能的挖掘>..
>>>>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>>>>    - 绝大多数erl 死亡都是内存耗光...
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>>>>    - 智能的进行了逻辑CPU 间的协同调度..
>>>>>    - erl进程是使用操作系统的真实线程
>>>>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>>>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>>>>
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~10:57 erl应该来作什么?
>>>>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>>>>    - 网游公司,用erl 开发平台!
>>>>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>>>>
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>>>>    - 而且可移植!...
>>>>>>>>>>
>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>>>>
>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>>>>> 嗯嗯嗯,因为有人在 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.

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 12:00

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 12:00:53 CST 2009

~11:59 CPU亲缘性利用!
    - Taskset ~ 如果业务明确后,令CPU 对于业务运行从来没有竞争锁,性能将提高 50%以上!
    - 启动OS的内置特性
        + Futex
        + VDSO
        + TCP/IP 协议桟...
            - 大文件句柄(只应微调,根据业务的) 有两面性.. port 等数据结构会自动调整,引发意外操作..
    - 基于测试的持续调优!


2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~11:49 总结优化最佳体验
>    - 多用:
>        + list comprehension
>        + iolist /gather write
>        + Binart > 256时,才引用计数(不用复制的!)
>        + Hipe_bif 也可以考虑
>        - 不要用昂贵的BIF:
>            - now()
>            - io_lib:format
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~11:40 性能测量的关注:
>>    + erl/Erts/OS 的热点
>>        - systemtap ~ 非入侵式旁观
>>        - Erlang 工具集,非常丰富,非常关注内存的分配...
>>            - 十多种调度模式
>>            - 200多种内存锁 lockcounter 就可以观察到问题集中点
>>            - dbg ~ "ETrace";-)
>>            ... snmp 综合运行期情况
>>    + 延迟变化
>>    + 响应时间的抖动
>>
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~12:00 业务方面的优化:
>>>    - 小消息大计算!
>>>    - IO和计算的时间开销比,就是应用的性能收益比!
>>>    - 对CPU和内存及早进行明显的分配!
>>>        - 将业务和实际CPU 对应上,以免引发切换时间消耗...
>>>    - 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
>>>    - 多用ets ~ 大数据量推荐
>>>    - tuple/list/array 只能应作小数据量
>>>    - 尽量 *无锁结构*
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
>>>>    - 可以省略很多系统特性
>>>>    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~11:11 OS方面的选择优化:
>>>>>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>>>>>    - RHEL 致力于高性能的挖掘>..
>>>>>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>>>>>    - 绝大多数erl 死亡都是内存耗光...
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>>>>>    - 智能的进行了逻辑CPU 间的协同调度..
>>>>>>    - erl进程是使用操作系统的真实线程
>>>>>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>>>>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>>>>>
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~10:57 erl应该来作什么?
>>>>>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>>>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>>>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>>>>>    - 网游公司,用erl 开发平台!
>>>>>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>>>>>
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>>>>>
>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>>>>>    - 而且可移植!...
>>>>>>>>>>>
>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>>>>>>> 091107::
>>>>>>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..




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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 12:10

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 12:10:08 CST 2009

~12:05 可诊断的系统
    - 有内部信息暴露的,参数可动态调节的!
    - 测试自动的,有高压力环境的
    - 尽可能的发挥 erts 的优势::
        + 用Ports 整合不同语言系统
        + 用 driver 改写关键性能苛求部分
        + 使用标准协议方便erl 自然处理(Asn.1),使用内置的高级特性...
    - 锁是实际存在的...
        + 尽量减少这方面的代码...

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~11:59 CPU亲缘性利用!
>    - Taskset ~ 如果业务明确后,令CPU 对于业务运行从来没有竞争锁,性能将提高 50%以上!
>    - 启动OS的内置特性
>        + Futex
>        + VDSO
>        + TCP/IP 协议桟...
>            - 大文件句柄(只应微调,根据业务的) 有两面性.. port 等数据结构会自动调整,引发意外操作..
>    - 基于测试的持续调优!
>
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~11:49 总结优化最佳体验
>>    - 多用:
>>        + list comprehension
>>        + iolist /gather write
>>        + Binart > 256时,才引用计数(不用复制的!)
>>        + Hipe_bif 也可以考虑
>>        - 不要用昂贵的BIF:
>>            - now()
>>            - io_lib:format
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~11:40 性能测量的关注:
>>>    + erl/Erts/OS 的热点
>>>        - systemtap ~ 非入侵式旁观
>>>        - Erlang 工具集,非常丰富,非常关注内存的分配...
>>>            - 十多种调度模式
>>>            - 200多种内存锁 lockcounter 就可以观察到问题集中点
>>>            - dbg ~ "ETrace";-)
>>>            ... snmp 综合运行期情况
>>>    + 延迟变化
>>>    + 响应时间的抖动
>>>
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~12:00 业务方面的优化:
>>>>    - 小消息大计算!
>>>>    - IO和计算的时间开销比,就是应用的性能收益比!
>>>>    - 对CPU和内存及早进行明显的分配!
>>>>        - 将业务和实际CPU 对应上,以免引发切换时间消耗...
>>>>    - 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
>>>>    - 多用ets ~ 大数据量推荐
>>>>    - tuple/list/array 只能应作小数据量
>>>>    - 尽量 *无锁结构*
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
>>>>>    - 可以省略很多系统特性
>>>>>    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~11:11 OS方面的选择优化:
>>>>>>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>>>>>>    - RHEL 致力于高性能的挖掘>..
>>>>>>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>>>>>>    - 绝大多数erl 死亡都是内存耗光...
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>>>>>>    - 智能的进行了逻辑CPU 间的协同调度..
>>>>>>>    - erl进程是使用操作系统的真实线程
>>>>>>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>>>>>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>>>>>>
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~10:57 erl应该来作什么?
>>>>>>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>>>>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>>>>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>>>>>>    - 网游公司,用erl 开发平台!
>>>>>>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>>>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>>>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>>>>>>
>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>>>>>>
>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>>>>>>    - 而且可移植!...
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>>>>>>>> 091107::
>>>>>>>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..


-- 
http://zoomquiet.org 人生苦短? Pythonic!
向靠谱,反脑残! Kaopulity,小白退散! [Kaopulity~= Keep all processes usablity!]

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 12:26

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 12:26:04 CST 2009

~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.quiet在gmail.com>:
> ~12:05 可诊断的系统
>    - 有内部信息暴露的,参数可动态调节的!
>    - 测试自动的,有高压力环境的
>    - 尽可能的发挥 erts 的优势::
>        + 用Ports 整合不同语言系统
>        + 用 driver 改写关键性能苛求部分
>        + 使用标准协议方便erl 自然处理(Asn.1),使用内置的高级特性...
>    - 锁是实际存在的...
>        + 尽量减少这方面的代码...
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~11:59 CPU亲缘性利用!
>>    - Taskset ~ 如果业务明确后,令CPU 对于业务运行从来没有竞争锁,性能将提高 50%以上!
>>    - 启动OS的内置特性
>>        + Futex
>>        + VDSO
>>        + TCP/IP 协议桟...
>>            - 大文件句柄(只应微调,根据业务的) 有两面性.. port 等数据结构会自动调整,引发意外操作..
>>    - 基于测试的持续调优!
>>
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~11:49 总结优化最佳体验
>>>    - 多用:
>>>        + list comprehension
>>>        + iolist /gather write
>>>        + Binart > 256时,才引用计数(不用复制的!)
>>>        + Hipe_bif 也可以考虑
>>>        - 不要用昂贵的BIF:
>>>            - now()
>>>            - io_lib:format
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~11:40 性能测量的关注:
>>>>    + erl/Erts/OS 的热点
>>>>        - systemtap ~ 非入侵式旁观
>>>>        - Erlang 工具集,非常丰富,非常关注内存的分配...
>>>>            - 十多种调度模式
>>>>            - 200多种内存锁 lockcounter 就可以观察到问题集中点
>>>>            - dbg ~ "ETrace";-)
>>>>            ... snmp 综合运行期情况
>>>>    + 延迟变化
>>>>    + 响应时间的抖动
>>>>
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~12:00 业务方面的优化:
>>>>>    - 小消息大计算!
>>>>>    - IO和计算的时间开销比,就是应用的性能收益比!
>>>>>    - 对CPU和内存及早进行明显的分配!
>>>>>        - 将业务和实际CPU 对应上,以免引发切换时间消耗...
>>>>>    - 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
>>>>>    - 多用ets ~ 大数据量推荐
>>>>>    - tuple/list/array 只能应作小数据量
>>>>>    - 尽量 *无锁结构*
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
>>>>>>    - 可以省略很多系统特性
>>>>>>    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~11:11 OS方面的选择优化:
>>>>>>>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>>>>>>>    - RHEL 致力于高性能的挖掘>..
>>>>>>>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>>>>>>>    - 绝大多数erl 死亡都是内存耗光...
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>>>>>>>    - 智能的进行了逻辑CPU 间的协同调度..
>>>>>>>>    - erl进程是使用操作系统的真实线程
>>>>>>>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>>>>>>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>>>>>>>
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~10:57 erl应该来作什么?
>>>>>>>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>>>>>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>>>>>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>>>>>>>    - 网游公司,用erl 开发平台!
>>>>>>>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>>>>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>>>>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>>>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>>>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>>>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>>>>>>>
>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>>>>>>>    - 而且可移植!...
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>>>>>>>>> 091107::
>>>>>>>>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..


-- 
http://zoomquiet.org 人生苦短? Pythonic!
一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 12:39

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 12:39:02 CST 2009

~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.quiet在gmail.com>:
> ~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.quiet在gmail.com>:
>> ~12:05 可诊断的系统
>>    - 有内部信息暴露的,参数可动态调节的!
>>    - 测试自动的,有高压力环境的
>>    - 尽可能的发挥 erts 的优势::
>>        + 用Ports 整合不同语言系统
>>        + 用 driver 改写关键性能苛求部分
>>        + 使用标准协议方便erl 自然处理(Asn.1),使用内置的高级特性...
>>    - 锁是实际存在的...
>>        + 尽量减少这方面的代码...
>>
>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>> ~11:59 CPU亲缘性利用!
>>>    - Taskset ~ 如果业务明确后,令CPU 对于业务运行从来没有竞争锁,性能将提高 50%以上!
>>>    - 启动OS的内置特性
>>>        + Futex
>>>        + VDSO
>>>        + TCP/IP 协议桟...
>>>            - 大文件句柄(只应微调,根据业务的) 有两面性.. port 等数据结构会自动调整,引发意外操作..
>>>    - 基于测试的持续调优!
>>>
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~11:49 总结优化最佳体验
>>>>    - 多用:
>>>>        + list comprehension
>>>>        + iolist /gather write
>>>>        + Binart > 256时,才引用计数(不用复制的!)
>>>>        + Hipe_bif 也可以考虑
>>>>        - 不要用昂贵的BIF:
>>>>            - now()
>>>>            - io_lib:format
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~11:40 性能测量的关注:
>>>>>    + erl/Erts/OS 的热点
>>>>>        - systemtap ~ 非入侵式旁观
>>>>>        - Erlang 工具集,非常丰富,非常关注内存的分配...
>>>>>            - 十多种调度模式
>>>>>            - 200多种内存锁 lockcounter 就可以观察到问题集中点
>>>>>            - dbg ~ "ETrace";-)
>>>>>            ... snmp 综合运行期情况
>>>>>    + 延迟变化
>>>>>    + 响应时间的抖动
>>>>>
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~12:00 业务方面的优化:
>>>>>>    - 小消息大计算!
>>>>>>    - IO和计算的时间开销比,就是应用的性能收益比!
>>>>>>    - 对CPU和内存及早进行明显的分配!
>>>>>>        - 将业务和实际CPU 对应上,以免引发切换时间消耗...
>>>>>>    - 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
>>>>>>    - 多用ets ~ 大数据量推荐
>>>>>>    - tuple/list/array 只能应作小数据量
>>>>>>    - 尽量 *无锁结构*
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
>>>>>>>    - 可以省略很多系统特性
>>>>>>>    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~11:11 OS方面的选择优化:
>>>>>>>>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>>>>>>>>    - RHEL 致力于高性能的挖掘>..
>>>>>>>>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>>>>>>>>    - 绝大多数erl 死亡都是内存耗光...
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>>>>>>>>    - 智能的进行了逻辑CPU 间的协同调度..
>>>>>>>>>    - erl进程是使用操作系统的真实线程
>>>>>>>>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>>>>>>>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~10:57 erl应该来作什么?
>>>>>>>>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>>>>>>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>>>>>>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>>>>>>>>
>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>>>>>>>>    - 网游公司,用erl 开发平台!
>>>>>>>>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>>>>>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>>>>>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>>>>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>>>>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>>>>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>>>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>>>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>>>>>>>>    - 而且可移植!...
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>>>>>>>>>> 091107::
>>>>>>>>>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..


-- 
http://zoomquiet.org 人生苦短? Pythonic!
流程是对先前蠢行的内在反应! ~ Clay Shirky (Process is an embedded reaction to prior
stupidity)http://bit.l...

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 14:10

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 14:10:56 CST 2009

~14:00 xiu shiwei引言,预告明日的沙龙...

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

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~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.quiet在gmail.com>:
>> ~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.quiet在gmail.com>:
>>> ~12:05 可诊断的系统
>>>    - 有内部信息暴露的,参数可动态调节的!
>>>    - 测试自动的,有高压力环境的
>>>    - 尽可能的发挥 erts 的优势::
>>>        + 用Ports 整合不同语言系统
>>>        + 用 driver 改写关键性能苛求部分
>>>        + 使用标准协议方便erl 自然处理(Asn.1),使用内置的高级特性...
>>>    - 锁是实际存在的...
>>>        + 尽量减少这方面的代码...
>>>
>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>> ~11:59 CPU亲缘性利用!
>>>>    - Taskset ~ 如果业务明确后,令CPU 对于业务运行从来没有竞争锁,性能将提高 50%以上!
>>>>    - 启动OS的内置特性
>>>>        + Futex
>>>>        + VDSO
>>>>        + TCP/IP 协议桟...
>>>>            - 大文件句柄(只应微调,根据业务的) 有两面性.. port 等数据结构会自动调整,引发意外操作..
>>>>    - 基于测试的持续调优!
>>>>
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~11:49 总结优化最佳体验
>>>>>    - 多用:
>>>>>        + list comprehension
>>>>>        + iolist /gather write
>>>>>        + Binart > 256时,才引用计数(不用复制的!)
>>>>>        + Hipe_bif 也可以考虑
>>>>>        - 不要用昂贵的BIF:
>>>>>            - now()
>>>>>            - io_lib:format
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~11:40 性能测量的关注:
>>>>>>    + erl/Erts/OS 的热点
>>>>>>        - systemtap ~ 非入侵式旁观
>>>>>>        - Erlang 工具集,非常丰富,非常关注内存的分配...
>>>>>>            - 十多种调度模式
>>>>>>            - 200多种内存锁 lockcounter 就可以观察到问题集中点
>>>>>>            - dbg ~ "ETrace";-)
>>>>>>            ... snmp 综合运行期情况
>>>>>>    + 延迟变化
>>>>>>    + 响应时间的抖动
>>>>>>
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~12:00 业务方面的优化:
>>>>>>>    - 小消息大计算!
>>>>>>>    - IO和计算的时间开销比,就是应用的性能收益比!
>>>>>>>    - 对CPU和内存及早进行明显的分配!
>>>>>>>        - 将业务和实际CPU 对应上,以免引发切换时间消耗...
>>>>>>>    - 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
>>>>>>>    - 多用ets ~ 大数据量推荐
>>>>>>>    - tuple/list/array 只能应作小数据量
>>>>>>>    - 尽量 *无锁结构*
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
>>>>>>>>    - 可以省略很多系统特性
>>>>>>>>    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~11:11 OS方面的选择优化:
>>>>>>>>>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>>>>>>>>>    - RHEL 致力于高性能的挖掘>..
>>>>>>>>>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>>>>>>>>>    - 绝大多数erl 死亡都是内存耗光...
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>>>>>>>>>    - 智能的进行了逻辑CPU 间的协同调度..
>>>>>>>>>>    - erl进程是使用操作系统的真实线程
>>>>>>>>>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>>>>>>>>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>> ~10:57 erl应该来作什么?
>>>>>>>>>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>>>>>>>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>>>>>>>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>>>>>>>>>
>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>>>>>>>>>    - 网游公司,用erl 开发平台!
>>>>>>>>>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>>>>>>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>>>>>>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>>>>>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>>>>>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>>>>>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>>>>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>>>>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>>>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>>>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>>>>>>>>>    - 而且可移植!...
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>>>>>>>>>>> 091107::
>>>>>>>>>>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..



-- 
http://zoomquiet.org 人生苦短? Pythonic!
向靠谱,反脑残! Kaopulity,小白退散! [Kaopulity~= Keep all processes usablity!]

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2009年11月07日 星期六 14:27

Zoom.Quiet zoom.quiet在gmail.com
星期六 十一月 7 14:27:51 CST 2009

~14:25 EB架构的演化:
    - 无名 ets 表,发布战场时况
    - 各种游戏运营过程中的情景
    - 同时行动时的内置顺序聲明
    - 战队算法>..

2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
> ~14:00 xiu shiwei引言,预告明日的沙龙...
>
> ~14:09 老范 开讲EB:
>    - 先用实况录像来开始,讲解EB 的实际情景
>    - 有机会使用Erl 的情景非常稀少,所以,通过一个简单的程序智力游戏实例来学习,有效,而且可行
>
> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>> ~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.quiet在gmail.com>:
>>> ~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.quiet在gmail.com>:
>>>> ~12:05 可诊断的系统
>>>>    - 有内部信息暴露的,参数可动态调节的!
>>>>    - 测试自动的,有高压力环境的
>>>>    - 尽可能的发挥 erts 的优势::
>>>>        + 用Ports 整合不同语言系统
>>>>        + 用 driver 改写关键性能苛求部分
>>>>        + 使用标准协议方便erl 自然处理(Asn.1),使用内置的高级特性...
>>>>    - 锁是实际存在的...
>>>>        + 尽量减少这方面的代码...
>>>>
>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>> ~11:59 CPU亲缘性利用!
>>>>>    - Taskset ~ 如果业务明确后,令CPU 对于业务运行从来没有竞争锁,性能将提高 50%以上!
>>>>>    - 启动OS的内置特性
>>>>>        + Futex
>>>>>        + VDSO
>>>>>        + TCP/IP 协议桟...
>>>>>            - 大文件句柄(只应微调,根据业务的) 有两面性.. port 等数据结构会自动调整,引发意外操作..
>>>>>    - 基于测试的持续调优!
>>>>>
>>>>>
>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>> ~11:49 总结优化最佳体验
>>>>>>    - 多用:
>>>>>>        + list comprehension
>>>>>>        + iolist /gather write
>>>>>>        + Binart > 256时,才引用计数(不用复制的!)
>>>>>>        + Hipe_bif 也可以考虑
>>>>>>        - 不要用昂贵的BIF:
>>>>>>            - now()
>>>>>>            - io_lib:format
>>>>>>
>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>> ~11:40 性能测量的关注:
>>>>>>>    + erl/Erts/OS 的热点
>>>>>>>        - systemtap ~ 非入侵式旁观
>>>>>>>        - Erlang 工具集,非常丰富,非常关注内存的分配...
>>>>>>>            - 十多种调度模式
>>>>>>>            - 200多种内存锁 lockcounter 就可以观察到问题集中点
>>>>>>>            - dbg ~ "ETrace";-)
>>>>>>>            ... snmp 综合运行期情况
>>>>>>>    + 延迟变化
>>>>>>>    + 响应时间的抖动
>>>>>>>
>>>>>>>
>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>> ~12:00 业务方面的优化:
>>>>>>>>    - 小消息大计算!
>>>>>>>>    - IO和计算的时间开销比,就是应用的性能收益比!
>>>>>>>>    - 对CPU和内存及早进行明显的分配!
>>>>>>>>        - 将业务和实际CPU 对应上,以免引发切换时间消耗...
>>>>>>>>    - 进程和物理世界的对象尽量 1:1 (erl 的对象控制级别是百万级别的!)
>>>>>>>>    - 多用ets ~ 大数据量推荐
>>>>>>>>    - tuple/list/array 只能应作小数据量
>>>>>>>>    - 尽量 *无锁结构*
>>>>>>>>
>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>> ~11:15 Hipe 虽然社区认为不稳定,但是实际应用时性能增强非常多!建议使用...
>>>>>>>>>    - 可以省略很多系统特性
>>>>>>>>>    - 未公开的特性: 调度器绑定! ~ 高级特性,可以预先配置CPU 行为>..
>>>>>>>>>
>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>> ~11:11 OS方面的选择优化:
>>>>>>>>>>    - 32位性能比64位好(64位没有内存限制,但是性能低20~30%)
>>>>>>>>>>    - RHEL 致力于高性能的挖掘>..
>>>>>>>>>>    - 配置系统的swapness ,内存的OS预留等默认配置要向已知业务倾斜!
>>>>>>>>>>    - 绝大多数erl 死亡都是内存耗光...
>>>>>>>>>>
>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>> ~11:05 R12B~R13B 最大的变化在进程调度方面,增长了上万行代码!
>>>>>>>>>>>    - 智能的进行了逻辑CPU 间的协同调度..
>>>>>>>>>>>    - erl进程是使用操作系统的真实线程
>>>>>>>>>>>    - 10000/s 的请求,引发的OS消息可以达到 600000/s 内核消息...
>>>>>>>>>>>    - 调度的单位是 Port 引发的一组I/O事件 ~ erl的调度是由进程和Port 组成的...
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>> ~10:57 erl应该来作什么?
>>>>>>>>>>>>    - I/O密集型/先进的SMP多核支持的 *网络服务器*!!!(或是说专用的操作系统)
>>>>>>>>>>>>    - 为了证明这一感觉,进行了真实的OS 对比
>>>>>>>>>>>>    - 各种组件完全可以和一个OS 的各个部件对应起来!~ etop?!?!?
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>> ~10:50 锋爷:Erlang应用优化指南
>>>>>>>>>>>>>    - 网游公司,用erl 开发平台!
>>>>>>>>>>>>>    - 对于性能的苛求导致发现短连接响应领域 erl 绝对领先!
>>>>>>>>>>>>>    - Taskset -c 1 erl +K true +h 99999 +P 99999 -s ehttpd
>>>>>>>>>>>>>    - 严格理解了应用需求后,放弃了垃圾收集等等内置行为后,性能增加 110%
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>> ~10:13 erl 开发中的逻辑问题解决...
>>>>>>>>>>>>>>    - 编译过,但是运行不过时的调试技巧! -> plt 的进一步自动分析,来定位可能的编辑问题
>>>>>>>>>>>>>>    - 使用定制的 dialyzer 测试脚本,定位常见问题...
>>>>>>>>>>>>>>    - 进一步的,充分使用 EUnit 是个好思路...
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>> ~10:05 注释约定! 模块用 %%% 前缀,函式用 %% 前缀...
>>>>>>>>>>>>>>>    - 遗憾的是:edoc 对中文支持不好
>>>>>>>>>>>>>>>    - 嗯嗯嗯,建议使用 Doxygen 之类第3方专业文档化编程工具
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>> ~10:01 Emakefile 内置的编译工具,比手工逐一make 可以获得一致性的自动统一编译;
>>>>>>>>>>>>>>>>    - 遗憾的是:只能编译.erl 的,无法依赖支持
>>>>>>>>>>>>>>>>    - 所以,习惯的使用 GNU make,通过makeconf 进一步加强日常的erl 生产编译行为...
>>>>>>>>>>>>>>>>    - 而且可移植!...
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>>> ~09:55 昨日的讲师小聚照片:http://www.flickr.com/photos/zoomq/sets/72157622746793958/
>>>>>>>>>>>>>>>>>    - appmon 内置的应用进程关系观察工具
>>>>>>>>>>>>>>>>>    - 相当于JAVA的类树图自动分析,只是这里是对真实的网络进程间关系探测!
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>>>> ~09:50 gen_server 是个稳固的 S/C 框架,我们可以放心的在其上进行开发;
>>>>>>>>>>>>>>>>>>    - erl 进程是种抽象概念,是应用的最小单位
>>>>>>>>>>>>>>>>>>    - 不要在gen_server 中进行复杂的处理,以免引发阻塞
>>>>>>>>>>>>>>>>>>    - 这时使用 gen_fsm 这是专门进行处理可能有阻塞的进程处理框架
>>>>>>>>>>>>>>>>>>    - 而且可以使用内置的相互监督模型进行进程脆崩后的自动处理
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 2009/11/7 Zoom.Quiet <zoom.quiet在gmail.com>:
>>>>>>>>>>>>>>>>>>> ~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.quiet在gmail.com>:
>>>>>>>>>>>>>>>>>>>> 嗯嗯嗯,因为有人在 Twitter,俺就进行习惯的邮件报道,有不习惯的请过滤哈...
>>>>>>>>>>>>>>>>>>>> 091107::
>>>>>>>>>>>>>>>>>>>> ~08:55 到达金溪山庄(关键词:西湖边上 杨公堤岸)
>>>>>>>>>>>>>>>>>>>> ~09:30 大家在沉默的等待开始,和会场的WIFI 进行斗争,終于明白是网页登录,不要关闭中国电信的认证网页,才可以继续上网
>>>>>>>>>>>>>>>>>>>> ~09:33 成立涛 - Erlang开发实践
>>>>>>>>>>>>>>>>>>>>    N多内容,包含了所有 erl 开发过程中的所有关键实践体验..

-- 
http://zoomquiet.org 人生苦短? Pythonic!
一个人如果力求完善自己,就会看到:为此也必须同时完善他人. 一个人如果不关心别人的完善,自己便不可能完善!

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号