1983
play

1983 Thank you, fellow time travelers from the Future Dave Cheney - PowerPoint PPT Presentation

The Why of Go 21st Century Programming Languages Track, Qcon SF Carmen Andoh 1983 Thank you, fellow time travelers from the Future Dave Cheney Alan Donovan Steve Francia Jrme Pettazoni Back to 1983 (from 1985, but whetev,


  1. The rise of Garbage containers + SEDA Context Collection cloud-native+ Java NIO ecosystem Microservices serverless Epoll Software | NodeJS Languages (linux) Go Kqueue Gunicorn (BSD) (Python) C++ at Ruby Google Mongrel Hardware & Compute P4 Core 2 C10K 80s 90s 2000 2005 2010 2017

  2. The rise of Memory containers + SEDA Context Locality cloud-native+ Java NIO ecosystem Microservices serverless Epoll Software | NodeJS Languages (linux) Go Kqueue Gunicorn (BSD) (Python) C++ at Ruby Google Mongrel Hardware & Compute P4 Core 2 C10K 80s 90s 2000 2005 2010 2017

  3. The rise of Memory containers + SEDA Context Locality cloud-native+ Java NIO ecosystem Microservices serverless Hotspot Epoll JVM Software | NodeJS Languages (linux) Go Kqueue Gunicorn (BSD) (Python) C++ at Ruby Google Mongrel Hardware & Compute P4 Core 2 C10K 80s 90s 2000 2005 2010 2017

  4. Memory Locality

  5. Memory Locality Java

  6. Memory Locality Java No value types Everything Allocated

  7. Memory Locality Java Go No value types Everything Allocated

  8. Memory Locality Java Go No value types Structs Everything Allocated True Value types

  9. Memory Locality Java Go No value types Structs Everything Allocated True Value types Can’t return multiple values

  10. The rise of Memory containers + SEDA Context Locality cloud-native+ Java NIO ecosystem Microservices serverless Hotspot Epoll JVM Software | NodeJS Languages (linux) Go Go GC Kqueue 1.8 Gunicorn (BSD) (Python) C++ at Ruby Google Mongrel Hardware & Compute P4 Core 2 C10K 80s 90s 2000 2005 2010 2017

  11. When the three of us [Ken Thompson, Rob Pike, and Robert Griesemer] got started, it was pure research. The three of us got together and decided that we hated C++. [laughter] ... [Returning to Go,] we started off with the idea that all three of us had to be talked into every feature in the language, so there was no extraneous garbage put into the language for any reason.

  12. The rise of Memory containers + SEDA Context Locality cloud-native+ Java NIO ecosystem Microservices serverless Hotspot Epoll JVM Software | NodeJS Languages (linux) Go Go GC Kqueue 1.8 Gunicorn (BSD) (Python) C++ at Ruby Google Mongrel Hardware & Compute P4 Core 2 C10K 80s 90s 2000 2005 2010 2017

  13. Memory Locality Java Go No value types Structs Everything Allocated True Value types Can’t return multiple values

  14. Memory Locality Java Go No value types Structs Everything Allocated True Value types Can’t return multiple values compact object layout No object headers

  15. Memory Locality Java Go UTF-8 No value types Structs Everything Allocated True Value types Can’t return multiple values compact object layout No object headers

  16. Memory Locality Java Go UTF-16 UTF-8 Structs No value types True Value types Everything Allocated compact object layout No object headers Can’t return multiple values

  17. Memory Locality Java Go UTF-16 UTF-8 Structs No value types True Value types Everything Allocated Compact object layout No object headers Can’t return multiple values Lazy initialization of collections

  18. Memory Locality (conclusion)

  19. Memory Locality (conclusion) ● Go gives programmers the tools to talk about memory efficiently if they need it.

Recommend


More recommend