Submit Search
Upload
The low level awesomeness of Go
•
3 likes
•
8,128 views
J
Jean-Bernard Jansen
Follow
A 4 minutes speech about the low-level mechanisms of the Go language.
Read less
Read more
Engineering
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 24
Download now
Download to read offline
Recommended
Demystifying the Go Scheduler
Demystifying the Go Scheduler
matthewrdale
Concurrency in go
Concurrency in go
borderj
Concurrency with Go
Concurrency with Go
Frank Müller
Golang concurrency design
Golang concurrency design
Hyejong
Concurrency in Golang
Concurrency in Golang
Oliver N
Go concurrency
Go concurrency
siuyin
Concurrency in Python4k
Concurrency in Python4k
Rodolfo Carvalho
Lambda Expressions in C++
Lambda Expressions in C++
Patrick Viafore
Recommended
Demystifying the Go Scheduler
Demystifying the Go Scheduler
matthewrdale
Concurrency in go
Concurrency in go
borderj
Concurrency with Go
Concurrency with Go
Frank Müller
Golang concurrency design
Golang concurrency design
Hyejong
Concurrency in Golang
Concurrency in Golang
Oliver N
Go concurrency
Go concurrency
siuyin
Concurrency in Python4k
Concurrency in Python4k
Rodolfo Carvalho
Lambda Expressions in C++
Lambda Expressions in C++
Patrick Viafore
Summary of C++17 features
Summary of C++17 features
Bartlomiej Filipek
C++17 introduction - Meetup @EtixLabs
C++17 introduction - Meetup @EtixLabs
Stephane Gleizes
Go Concurrency Patterns
Go Concurrency Patterns
ElifTech
Go Concurrency Basics
Go Concurrency Basics
ElifTech
Coroutines talk ppt
Coroutines talk ppt
Shahroz Khan
Go Lang Tutorial
Go Lang Tutorial
Wei-Ning Huang
A Simple Communication System Design Lab #4 with MATLAB Simulink
A Simple Communication System Design Lab #4 with MATLAB Simulink
Jaewook. Kang
Diving into HHVM Extensions (Brno PHP Conference 2015)
Diving into HHVM Extensions (Brno PHP Conference 2015)
James Titcumb
Two C++ Tools: Compiler Explorer and Cpp Insights
Two C++ Tools: Compiler Explorer and Cpp Insights
Alison Chaiken
Lecture05
Lecture05
elearning_portal
190111 tf2 preview_jwkang_pub
190111 tf2 preview_jwkang_pub
Jaewook. Kang
.Net 4.0 Threading and Parallel Programming
.Net 4.0 Threading and Parallel Programming
Alex Moore
C Under Linux
C Under Linux
mohan43u
Dataflow: Declarative concurrency in Ruby
Dataflow: Declarative concurrency in Ruby
Larry Diehl
C++ Presentation
C++ Presentation
Carson Wilber
Modern C++
Modern C++
Michael Clark
Using zone.js
Using zone.js
Standa Opichal
Modern c++ (C++ 11/14)
Modern c++ (C++ 11/14)
Geeks Anonymes
Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011
Jimmy Schementi
Perl In The Command Line
Perl In The Command Line
Marcos Rebelo
C++ language basic
C++ language basic
Waqar Younis
C++ In One Day_Nho Vĩnh Share
C++ In One Day_Nho Vĩnh Share
Nho Vĩnh
More Related Content
What's hot
Summary of C++17 features
Summary of C++17 features
Bartlomiej Filipek
C++17 introduction - Meetup @EtixLabs
C++17 introduction - Meetup @EtixLabs
Stephane Gleizes
Go Concurrency Patterns
Go Concurrency Patterns
ElifTech
Go Concurrency Basics
Go Concurrency Basics
ElifTech
Coroutines talk ppt
Coroutines talk ppt
Shahroz Khan
Go Lang Tutorial
Go Lang Tutorial
Wei-Ning Huang
A Simple Communication System Design Lab #4 with MATLAB Simulink
A Simple Communication System Design Lab #4 with MATLAB Simulink
Jaewook. Kang
Diving into HHVM Extensions (Brno PHP Conference 2015)
Diving into HHVM Extensions (Brno PHP Conference 2015)
James Titcumb
Two C++ Tools: Compiler Explorer and Cpp Insights
Two C++ Tools: Compiler Explorer and Cpp Insights
Alison Chaiken
Lecture05
Lecture05
elearning_portal
190111 tf2 preview_jwkang_pub
190111 tf2 preview_jwkang_pub
Jaewook. Kang
.Net 4.0 Threading and Parallel Programming
.Net 4.0 Threading and Parallel Programming
Alex Moore
C Under Linux
C Under Linux
mohan43u
Dataflow: Declarative concurrency in Ruby
Dataflow: Declarative concurrency in Ruby
Larry Diehl
C++ Presentation
C++ Presentation
Carson Wilber
Modern C++
Modern C++
Michael Clark
Using zone.js
Using zone.js
Standa Opichal
Modern c++ (C++ 11/14)
Modern c++ (C++ 11/14)
Geeks Anonymes
Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011
Jimmy Schementi
Perl In The Command Line
Perl In The Command Line
Marcos Rebelo
What's hot
(20)
Summary of C++17 features
Summary of C++17 features
C++17 introduction - Meetup @EtixLabs
C++17 introduction - Meetup @EtixLabs
Go Concurrency Patterns
Go Concurrency Patterns
Go Concurrency Basics
Go Concurrency Basics
Coroutines talk ppt
Coroutines talk ppt
Go Lang Tutorial
Go Lang Tutorial
A Simple Communication System Design Lab #4 with MATLAB Simulink
A Simple Communication System Design Lab #4 with MATLAB Simulink
Diving into HHVM Extensions (Brno PHP Conference 2015)
Diving into HHVM Extensions (Brno PHP Conference 2015)
Two C++ Tools: Compiler Explorer and Cpp Insights
Two C++ Tools: Compiler Explorer and Cpp Insights
Lecture05
Lecture05
190111 tf2 preview_jwkang_pub
190111 tf2 preview_jwkang_pub
.Net 4.0 Threading and Parallel Programming
.Net 4.0 Threading and Parallel Programming
C Under Linux
C Under Linux
Dataflow: Declarative concurrency in Ruby
Dataflow: Declarative concurrency in Ruby
C++ Presentation
C++ Presentation
Modern C++
Modern C++
Using zone.js
Using zone.js
Modern c++ (C++ 11/14)
Modern c++ (C++ 11/14)
Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011
Perl In The Command Line
Perl In The Command Line
Similar to The low level awesomeness of Go
C++ language basic
C++ language basic
Waqar Younis
C++ In One Day_Nho Vĩnh Share
C++ In One Day_Nho Vĩnh Share
Nho Vĩnh
Introduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).doc
MayurWagh46
Unit 1 of c++ part 1 basic introduction
Unit 1 of c++ part 1 basic introduction
AKR Education
C++ vs python the best ever comparison
C++ vs python the best ever comparison
calltutors
On component interface
On component interface
Laurence Chen
basics of c++
basics of c++
gourav kottawar
basics of c++
basics of c++
gourav kottawar
Introduction-to-C-Part-1.pptx
Introduction-to-C-Part-1.pptx
NEHARAJPUT239591
Introduction-to-C-Part-1 JSAHSHAHSJAHSJAHSJHASJ
Introduction-to-C-Part-1 JSAHSHAHSJAHSJAHSJHASJ
meharikiros2
Introduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdf
AnassElHousni
Session 1 - c++ intro
Session 1 - c++ intro
VijayaNagarajan5
Part 1
Part 1
Moatez Amairi
C++ helps you to format the I/O operations like determining the number of dig...
C++ helps you to format the I/O operations like determining the number of dig...
bhargavi804095
Oops index
Oops index
Hitesh Wagle
Comparison between python and c++
Comparison between python and c++
ssusera7faf41
C++ was developed by Bjarne Stroustrup, as an extension to the C language. cp...
C++ was developed by Bjarne Stroustrup, as an extension to the C language. cp...
bhargavi804095
Migrating From Cpp To C Sharp
Migrating From Cpp To C Sharp
Ganesh Samarthyam
Cloud Conf 2015 - Develop and Deploy IOT Applications
Cloud Conf 2015 - Develop and Deploy IOT Applications
Corley S.r.l.
Why Go Lang?
Why Go Lang?
Sathish VJ
Similar to The low level awesomeness of Go
(20)
C++ language basic
C++ language basic
C++ In One Day_Nho Vĩnh Share
C++ In One Day_Nho Vĩnh Share
Introduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).doc
Unit 1 of c++ part 1 basic introduction
Unit 1 of c++ part 1 basic introduction
C++ vs python the best ever comparison
C++ vs python the best ever comparison
On component interface
On component interface
basics of c++
basics of c++
basics of c++
basics of c++
Introduction-to-C-Part-1.pptx
Introduction-to-C-Part-1.pptx
Introduction-to-C-Part-1 JSAHSHAHSJAHSJAHSJHASJ
Introduction-to-C-Part-1 JSAHSHAHSJAHSJAHSJHASJ
Introduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdf
Session 1 - c++ intro
Session 1 - c++ intro
Part 1
Part 1
C++ helps you to format the I/O operations like determining the number of dig...
C++ helps you to format the I/O operations like determining the number of dig...
Oops index
Oops index
Comparison between python and c++
Comparison between python and c++
C++ was developed by Bjarne Stroustrup, as an extension to the C language. cp...
C++ was developed by Bjarne Stroustrup, as an extension to the C language. cp...
Migrating From Cpp To C Sharp
Migrating From Cpp To C Sharp
Cloud Conf 2015 - Develop and Deploy IOT Applications
Cloud Conf 2015 - Develop and Deploy IOT Applications
Why Go Lang?
Why Go Lang?
Recently uploaded
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
sivaprakash250
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
upamatechverse
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
ranjana rawat
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
9953056974 Low Rate Call Girls In Saket, Delhi NCR
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
Call Girls in Nagpur High Profile
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
Asst.prof M.Gokilavani
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur High Profile
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur High Profile
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
SIVASHANKAR N
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Christo Ananth
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur High Profile
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Call Girls in Nagpur High Profile
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Dr.Costas Sachpazis
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
M Maged Hegazy, LLM, MBA, CCP, P3O
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
ranjana rawat
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
upamatechverse
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
Tsuyoshi Horigome
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
rknatarajan
Recently uploaded
(20)
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
The low level awesomeness of Go
1.
Seen by a C++ developer The low-level awesomeness of Go
2.
Concurrent I/O programming in C++
3.
Concurrent I/O programming in C++ Complicated: Program intent diluted into synchronization tooling (threads, mutexes, event loops).
4.
Concurrent I/O programming in C++ Verbose: A lot of code to write to do simple things.
5.
Concurrent I/O programming in C++ Delicate: One step out of the way and you blow the whole thing up.
6.
Why Go appeals C++ developers
7.
Why Go appeals C++ developers Goroutines: Break the code into logical parts
8.
Why Go appeals C++ developers I/O friendly: Netpoller frees the developer from infamous callbacks
9.
Why Go appeals C++ developers Code as data flow: Channels makes it easy to write application as a data pipeline
10.
Goroutines : how does it do it
11.
Goroutines : how does it do it Go is written in assembly and Go exclusively (except for cgo). ASM code
12.
Goroutines : how does it do it Jumping the execution flow between a goroutine and the scheduler is fast Fast context switching
13.
Process/Thread 3000 to 4500 ns CPU Affinity 1300 to 1900 ns CPU Affinity Goroutine: < 10 ns Goroutines : how does it do it Fast context switching
14.
Goroutines : how does it do it TLS is used to jump from a Goroutine to the scheduler Classic TLS can be costly depending on the platform Thread Local Storage
15.
Goroutines : how does it do it Go takes advantage of a unused MMU registry if possible Thread Local Storage
16.
Netpoller: how does it do it
17.
Netpoller: how does it do it The scheduler unparks Goroutines just when I/O is available. Hidden in the scheduler
18.
Netpoller: how does it do it epoll for Linux kqueue for Mac OS I/O Completion ports for Windows Syscalls depending on the OS
19.
Channels : how does it do it
20.
Channels : how does it do it Lock-free for a writer in a non-full channel. Lock-free for a reader in a non-empty channel. Critical section stays short for blocking calls. Limited usage of mutexes
21.
Channels : how does it do it Lock-free operations use atomic CopyAndSwap for modern processors Atomics
22.
Channels : how does it do it Go mutexes are implemented with futexes (Fast Userspace muTEX). Fast mutexes
23.
duckie.github.io/boson See those things implemented in C++
24.
Thank you very much
Download now