Merge pull request #2 from ryancox/cacheline
add some links and outline content related to cachelines
This commit is contained in:
commit
04e5f24bca
17
TODO
17
TODO
@ -8,6 +8,10 @@
|
|||||||
- http://bravenewgeek.com/so-you-wanna-go-fast/
|
- http://bravenewgeek.com/so-you-wanna-go-fast/
|
||||||
- https://medium.com/%40hackintoshrao/daily-code-optimization-using-benchmarks-and-profiling-in-golang-gophercon-india-2016-talk-874c8b4dc3c5
|
- https://medium.com/%40hackintoshrao/daily-code-optimization-using-benchmarks-and-profiling-in-golang-gophercon-india-2016-talk-874c8b4dc3c5
|
||||||
- If you're writing benchmarks, read http://dave.cheney.net/2013/06/30/how-to-write-benchmarks-in-go
|
- If you're writing benchmarks, read http://dave.cheney.net/2013/06/30/how-to-write-benchmarks-in-go
|
||||||
|
- cache line explanation: http://mechanitis.blogspot.com/2011/07/dissecting-disruptor-why-its-so-fast_22.html
|
||||||
|
- avoiding false sharing: http://www.drdobbs.com/parallel/eliminate-false-sharing/217500206
|
||||||
|
- how does this translate to go? http://www.catb.org/esr/structure-packing/
|
||||||
|
|
||||||
|
|
||||||
videos:
|
videos:
|
||||||
https://gophervids.appspot.com/#tags=optimization
|
https://gophervids.appspot.com/#tags=optimization
|
||||||
@ -33,9 +37,14 @@ videos:
|
|||||||
|
|
||||||
https://talks.golang.org/2013/highperf.slide#1
|
https://talks.golang.org/2013/highperf.slide#1
|
||||||
|
|
||||||
|
Machine Architecture: Things Your Programming Language Never Told You
|
||||||
|
https://www.youtube.com/watch?v=L7zSU9HI-6I
|
||||||
|
|
||||||
posts:
|
posts:
|
||||||
http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html
|
http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html
|
||||||
https://arxiv.org/abs/1509.05053
|
https://arxiv.org/abs/1509.05053
|
||||||
|
http://grokbase.com/t/gg/golang-nuts/155ea0t5hf/go-nuts-after-set-gomaxprocs-different-machines-have-different-bahaviors-some-speed-up-some-slow-down
|
||||||
|
http://grokbase.com/t/gg/golang-nuts/14138jw64s/go-nuts-concurrent-read-write-of-different-parts-of-a-slice
|
||||||
|
|
||||||
|
|
||||||
tools:
|
tools:
|
||||||
@ -51,3 +60,11 @@ tools:
|
|||||||
https://github.com/MiniProfiler/go
|
https://github.com/MiniProfiler/go
|
||||||
https://perf.wiki.kernel.org/index.php/Main_Page
|
https://perf.wiki.kernel.org/index.php/Main_Page
|
||||||
https://github.com/dominikh/go-structlayout
|
https://github.com/dominikh/go-structlayout
|
||||||
|
http://www.brendangregg.com/perf.html
|
||||||
|
|
||||||
|
papers:
|
||||||
|
https://www.akkadia.org/drepper/cpumemory.pdf
|
||||||
|
|
||||||
|
stackoverflow:
|
||||||
|
https://stackoverflow.com/questions/19397699/why-struct-with-padding-fields-works-faster/19397791#19397791
|
||||||
|
https://stackoverflow.com/questions/10017026/no-speedup-in-multithread-program/10017482#10017482
|
||||||
|
@ -47,6 +47,9 @@ Techniques applicable to source code in general
|
|||||||
|
|
||||||
* Techniques specific to the architecture running the code
|
* Techniques specific to the architecture running the code
|
||||||
* introduction to CPU caches
|
* introduction to CPU caches
|
||||||
|
* building intuition around cache-lines: sizes, padding, alignment
|
||||||
|
* false-sharing
|
||||||
|
* OS tools to view cache-misses
|
||||||
* (also branch prediction)
|
* (also branch prediction)
|
||||||
|
|
||||||
* Comment about Jeff Dean's 2002 numbers (plus updates)
|
* Comment about Jeff Dean's 2002 numbers (plus updates)
|
||||||
|
Loading…
Reference in New Issue
Block a user