phpにおけるi/o多重化とyield

104
PHPにおける I/O多重化yield PHP Conference 2014 ヤフー株式会社 中野 拓 1 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止

Upload: yahoo

Post on 05-Dec-2014

8.745 views

Category:

Software


1 download

DESCRIPTION

PHPカンファレンス2014にて発表した内容です。 https://joind.in/talk/view/12038

TRANSCRIPT

  • 1. PHP I/O yield PHP Conference 2014 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 1
  • 2. http://developer.yahoo.co.jp/ PHP7 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 2
  • 3. 3 1. I/O 2. I/O 3. PHPnode.js 4. yield 5. Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
  • 4. 1 I/O Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 4
  • 5. : http://martinfowler.com/articles/microservices.html Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 5
  • 6. *aaS/WebAPI 6 MBaaS DBaaS Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
  • 7. Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 7
  • 8. I/O L1 cache reference 0.5 ns L2 cache reference 5 ns Main Memory reference 100 ns Send 1K bytes over 1Gbps network 10,000 ns 0.01 ms Read 4K randomly from SSD 150,000 ns 0.15 ms Round trip within same datacenter 500,000 ns 0.5 ms Read 1 MB sequentially from SSD 1,000,000 ns 1 ms Disk seek 10,000,000 ns 10 ms Read 1 MB sequentially from disk 20,000,000 ns 20 ms Send Packet CA->Netherlands->CA 150,000,000 ns 150 ms Latency Numbers Every Programmer Should Know () https://gist.github.com/jboner/2841832 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 8
  • 9. I/O I/O Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 9
  • 10. I/O Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 10
  • 11. 1 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 11
  • 12. Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 12
  • 13. I/O Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 13
  • 14. I/O API (Reactor) Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 14
  • 15. Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 15
  • 16. PHPExperimental pcntl ApachePHP API Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 16
  • 17. PHPAPI curl_multi mysqlnd postgresql stream_select, libevent, libev, libuv Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 17
  • 18. 1 I/O PHPAPI Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 18
  • 19. 2 I/O Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 19
  • 20. curl_multi Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 20
  • 21. Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 21
  • 22. 1 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 22
  • 23. curl_multi 23 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved.
  • 24. Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 24
  • 25. 1I/O 1 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 25
  • 26. Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 26
  • 27. curl_multi PHP - curl_multiHTTP - Qiita http://qiita.com/Hiraku/items/1c67b51040246efb4254 Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 27
  • 28. Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 28
  • 29. 2 curl_multi Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 29
  • 30. I/O Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 30
  • 31. http://nodejs.org Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 31
  • 32. 3 PHPnode.js Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 32
  • 33. node.js 11 I/O Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 33
  • 34. node.jsAPI () Callback Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 34
  • 35. echo var net = require('net'); var server = net.createServer(function(socket){ socket.write('Echo serverrn'); socket.pipe(socket); }); server.listen(1337, '127.0.0.1'); Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 35
  • 36. node.js Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 36
  • 37. PHPnode.js Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 37
  • 38. PHPnode.js Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 38
  • 39. http://reactphp.org/ Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 39
  • 40. https://github.com/amphp Copyright (C) 2014 Yahoo Japan Corporation. All Rights Reserved. 40
  • 41. reactphp