22
那么社区-庄恒 http://named.cn

ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

那么社区-庄恒⻜飞 http://named.cn

Page 2: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

What is fibs ?

• Javascript Platform

• Based on V8

• Non-Blocking

• Fiber-Driven

• NO CallBack

Page 3: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

How to install it ?

brew install fibjs

http://fibjs.org

Page 4: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

What’s the difference ?

Page 5: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Demo

Page 6: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Node.js :

Fibjs :

Page 7: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Pretty Cool!

Page 8: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

How does it works ?

Page 9: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Current fiber pending, Javascript switch to next waiting fiber。When the pending fiber’s job has been done,it will be added to the waiting queue.

Page 10: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

JS Thead Work Thead Pool IO Thead

Page 11: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

JS Thead Work Thead Pool IO Thead

Page 12: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Work Thead Pool

• Sync IO. (file)

• Compute Intensive.(Encryption,Compression,image…)

• Async Logic.(Protocol processing)

Page 13: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Improve the utilization of JS Thread

Page 14: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Experience Sharing

• Module

• Parallel

• Hot Upgrade

• Transplant npm package

Page 15: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Module System

• CommonJS

• Asynchronous Require(unlike node.js)

• exports&module are valid, only when required

• exports cloned object

• .module(similar to node_modules)

Page 16: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Parallel

• coroutine.parallel

Page 17: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Hot Upgrade

Demo

Page 18: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Transplant npm package

• Pure JS library, direct use。

• Node async API, modify to fibjs API

• Create your owen lib ,based on fiber!

Page 19: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Conclusion

• Simple

• Completely Asynchronous

• No CallBack

• Powerful

Page 20: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Try it now!

Page 21: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Q/A

Page 22: ShenJS fibjs keynote · • Javascript Platform ... • Async Logic.(Protocol processing) Improve the utilization of JS Thread. Experience Sharing • Module • Parallel

Thank!