Damian Gryski
5093cb2269
mention hacker's delight in the appropriate section
2018-03-03 22:47:42 -08:00
Damian Gryski
3f45c91bb0
other notes on optimized maps in the runtime
2018-03-03 14:41:29 -08:00
Kale Blankenship
0b28a0d8fd
Formatting imporovements/type fixes found while reading
2018-03-03 13:58:11 -08:00
Damian Gryski
e727330a11
cpu cache and assembly notes
2018-03-03 09:00:30 -08:00
Damian Gryski
3c5c860e4d
note about taking a performance hit in exchange for improved scalability
2018-03-03 07:31:57 -08:00
Damian Gryski
4f5d0376b6
clean up trailing whitespace
2018-03-02 21:20:50 -08:00
Damian Gryski
7607085b21
more bits
2018-03-02 13:32:13 -08:00
Kane York
8931b246b4
Add some pithy 'Advice' lines to the big-O summary
...
Also mentioned "anything else between quadratic n² and exponential b^n", which is where a lot of NP-hard optimizations are ending up right now (e.g. O(n² (log log n)² and friends)
2018-03-01 21:46:29 -08:00
jose nazario
a56a2ddbba
fix a couple of spelling errors, no content changes
2018-03-01 18:41:33 -08:00
Damian Gryski
7e70f3c83d
note two-value range copy gotcha
2018-03-01 12:41:25 -08:00
Damian Gryski
7f3d9221ec
tweak big-O cutoff wording
2018-03-01 10:18:06 -08:00
Damian Gryski
537f5198dd
more numerical code optimization notes
2018-02-27 11:14:53 -08:00
Damian Gryski
1f018a0079
CL landed, point to commit instead of gerrit
2018-02-26 20:49:34 -08:00
Damian Gryski
423ef443f6
prose tweaks
2018-02-19 11:55:16 -08:00
Damian Gryski
3c4794cb6c
tweak ux optimization paragraph
2018-02-19 11:54:41 -08:00
Damian Gryski
fe935e9f79
note unrolling example
2018-02-11 14:49:11 -08:00
Damian Gryski
71a544213c
note speed downsides of binary.Read/binary.Write
2018-02-11 11:58:43 -08:00
Damian Gryski
def1b8d9d8
add five-ways paper
2018-02-10 08:45:26 -08:00
Damian Gryski
133b978d9c
start notes on memory
2018-02-03 15:04:19 -08:00
Damian Gryski
1d7520c325
service optimization
2018-02-03 14:25:42 -08:00
Damian Gryski
8272572949
tweaks
2018-01-31 17:42:42 -08:00
Damian Gryski
f567b7f9bb
add a section on pointers for system design
2018-01-28 15:54:00 -08:00
Damian Gryski
99e972884e
more warning about folklore
2018-01-27 15:02:59 -08:00
Damian Gryski
38999da377
clarity distributed system performance; needs more
2018-01-27 15:02:42 -08:00
Damian Gryski
5573fc180b
tweak working for algorithmic improvement examples
2018-01-27 10:07:32 -08:00
Damian Gryski
1bc220c82c
lint fixes for code block
2018-01-27 08:36:16 -08:00
Damian Gryski
8a5395226d
add "wasted here" comment
2018-01-27 08:36:16 -08:00
Damian Gryski
3c3bdb4883
better example for algorithm improvement
2018-01-27 08:36:16 -08:00
Damian Gryski
65da16207f
tweaks; add example for "efficient" algorithm
2018-01-27 08:36:16 -08:00
Damian Gryski
3de152393b
make "don't be dumb" / "be smart" sections explicit.
2018-01-27 08:36:15 -08:00
Damian Gryski
66d681b598
get proebsting's law and integer programming algorithm improvements in
2018-01-27 08:36:15 -08:00
Damian Gryski
d8e5cb3ee8
prosify hash map -> xor k/vs story
2018-01-27 08:36:15 -08:00
Damian Gryski
208fa3bd59
word tweak
2018-01-27 08:36:15 -08:00
Damian Gryski
8fde5fb00c
fix cache prose
2018-01-27 08:36:15 -08:00
Damian Gryski
149f93d858
move realistic data distribution cache example
2018-01-27 08:36:15 -08:00
Damian Gryski
a57dde59e7
shuffle sections to match proposed outline
2018-01-27 08:36:15 -08:00
Damian Gryski
5c681bc288
more prose tweaks
2018-01-27 08:36:15 -08:00
Damian Gryski
beb5dbc663
talk about pointer-free maps keys
2018-01-27 08:36:15 -08:00
Damian Gryski
c6743fb982
add example from slack
2018-01-27 08:36:15 -08:00
Damian Gryski
a1ed903449
examples for simple and polyalgorithm
2018-01-27 08:36:15 -08:00
Damian Gryski
823fcd31b3
should at least mention RUM conjecture in section on datastructure building
2018-01-27 08:36:15 -08:00
Damian Gryski
6c72efd6c2
prose for implementing research papers
2018-01-27 08:36:15 -08:00
Damian Gryski
12fef8dfd1
shuffle sections around
2018-01-27 08:36:15 -08:00
Damian Gryski
e876225927
mostly tuning notes
2018-01-27 08:36:15 -08:00
Damian Gryski
1e58607c99
remove duplicated bentley link
2018-01-27 08:36:15 -08:00
Damian Gryski
b7e10ae3c2
tuning links and benchmarkable code
2018-01-27 08:36:15 -08:00
Damian Gryski
79d9787d4c
more tuning prose
2018-01-27 08:36:15 -08:00
Damian Gryski
f99a3427b4
more tuning notes
2018-01-27 08:36:15 -08:00
Damian Gryski
db7b1270a2
tweaks
2018-01-27 08:36:15 -08:00
Damian Gryski
93f5451295
ramblings
2018-01-27 08:36:15 -08:00
Damian Gryski
a01ad6ecb5
more rambling
2018-01-27 08:36:15 -08:00
Damian Gryski
2b1479cfe6
more rambling
2018-01-27 08:36:15 -08:00
Damian Gryski
59eb6aee88
Obvious tuning example
2018-01-27 08:36:15 -08:00
Damian Gryski
9452e1da99
more tuning notes
2018-01-27 08:36:15 -08:00
Damian Gryski
9b52fc4205
more rambling
2018-01-27 08:36:15 -08:00
Damian Gryski
2473eb839d
remove "basic rules" section; that's been covered elsewhere now
2018-01-27 08:36:15 -08:00
Damian Gryski
a73a7facb8
markdown link fixes
2018-01-27 08:36:15 -08:00
Damian Gryski
b4451b88e0
more topics
2018-01-27 08:36:15 -08:00
Damian Gryski
4f043c23b5
memory hierarchy warning
2018-01-27 08:36:15 -08:00
Damian Gryski
7f6a8347a8
add dotGo notes
2018-01-27 08:36:15 -08:00
Damian Gryski
fccd81d0bb
put big-o category first
2018-01-27 08:36:15 -08:00
Damian Gryski
b93d199716
big-O and algorithm costs
2018-01-27 08:36:15 -08:00
Damian Gryski
a8b86beaee
algorithmic tips before code tuning tips
2018-01-27 08:36:15 -08:00
Damian Gryski
8934dd0987
code tuning prose
2018-01-27 08:36:15 -08:00
Damian Gryski
549a7b8aea
paper implementation notes
2018-01-27 08:36:15 -08:00
Damian Gryski
0abd306e4f
space discussion
2018-01-27 08:36:15 -08:00
Damian Gryski
c049e201ca
foreshadow cache line discussion
2018-01-27 08:36:15 -08:00
Damian Gryski
b8cbe45def
more data structure tweaks
2018-01-27 08:36:15 -08:00
Damian Gryski
bc7018f4be
prose data structure augmentation
2018-01-27 08:36:15 -08:00
Damian Gryski
2e91fa82ad
shuffing and prose
2018-01-27 08:36:15 -08:00
Damian Gryski
8150f7df9f
a bit of shuffling and a bit of prose
2018-01-27 08:36:15 -08:00
Damian Gryski
fd21512c1a
spelling
2018-01-27 08:36:15 -08:00
Damian Gryski
1211c4ea2c
microbenchmarking
2018-01-27 08:36:15 -08:00
Damian Gryski
a15e27a9a7
how to detect invalid benchmarks
2018-01-27 08:36:15 -08:00
Damian Gryski
6fa67a29e6
more topics
2018-01-27 08:36:15 -08:00
Damian Gryski
927710eded
add gccgo
2018-01-27 08:36:15 -08:00
Damian Gryski
f8e01fc8af
start larger prose batches
2018-01-27 08:36:15 -08:00
Damian Gryski
2cf2b82d2c
buffer reuse
2018-01-27 08:36:15 -08:00
Damian Gryski
2b09e975e2
deoptimization
2018-01-27 08:36:15 -08:00
Damian Gryski
6f5a55da25
tiny notes
2018-01-27 08:36:15 -08:00
Damian Gryski
95f52a4bd8
reprofile and gc notes
2018-01-27 08:36:15 -08:00
Damian Gryski
c64b5138c3
data distribution notes
2018-01-27 08:36:15 -08:00
Damian Gryski
dd8b0dea97
cache eviction + general stdlib
2018-01-27 08:36:15 -08:00
Damian Gryski
078594c5f8
expensive vs. cheap checks
2018-01-27 08:36:14 -08:00
Damian Gryski
c95d4b2a4d
augmented data structure notes
2018-01-27 08:36:14 -08:00
Damian Gryski
718d63af4f
explain need for fast benchmarks
2018-01-27 08:36:14 -08:00
Damian Gryski
7f0590de81
more thoughts
2018-01-27 08:36:14 -08:00
Damian Gryski
e88e8c70ec
solution iteration
2018-01-27 08:36:14 -08:00
Damian Gryski
74ea4bad7c
polyalgorithms
2018-01-27 08:36:14 -08:00
Damian Gryski
60bec2b464
expand on optimizing at different levels
2018-01-27 08:36:14 -08:00
Damian Gryski
3f14524242
a few quick thoughts
2018-01-27 08:36:14 -08:00
Damian Gryski
cf2414f5c6
more notes
2018-01-27 08:36:14 -08:00
Damian Gryski
9a32443804
more topics to outline
2018-01-27 08:36:14 -08:00
Damian Gryski
1448a3f800
go -> golang because really that's what the awesome would be called.
2018-01-27 08:36:14 -08:00
Damian Gryski
df67db0ccc
clarify what this isn't
2018-01-27 08:36:14 -08:00
Damian Gryski
5066a0bada
more notes for prose
2018-01-27 08:36:14 -08:00
Damian Gryski
38d428239f
updates
2018-01-27 08:36:14 -08:00
Damian Gryski
2218a278ce
more bits
2018-01-27 08:36:14 -08:00
Damian Gryski
7ccaac8fab
add TPOP quote
2018-01-27 08:36:14 -08:00
Damian Gryski
778fb3a77b
typos (thanks @peterhellberg)
2018-01-27 08:36:14 -08:00
Damian Gryski
3761b7fc11
more prose
2018-01-27 08:36:14 -08:00
Damian Gryski
867d1f9079
start rambling -> prose
2018-01-27 08:36:14 -08:00
Damian Gryski
47cf516944
more rambling
2018-01-27 08:36:14 -08:00
Damian Gryski
6c19aaf8c6
how to use sync.Pool effectively: don't
2017-12-30 01:14:16 -08:00
Damian Gryski
a0814d1b85
tweak working on where to benchmark
2017-12-29 08:05:36 -08:00
Damian Gryski
9fbae0e4aa
go-torch is now included in pprof
2017-12-29 08:04:17 -08:00
StabbyCutyou
b75903303d
Fix typo in asm section
2017-12-28 20:26:52 -05:00
StabbyCutyou
20807caca5
Adding a note on benchmarking on the correct target platform
2017-12-28 20:23:36 -05:00
Alex Pliutau
1ed15d8b24
Correct link: https://godoc.org/golang.org/x/perf/benchstat
2017-12-28 09:39:27 -08:00
Damian Gryski
af9bc8676b
benchstat has moved
2017-04-25 05:57:38 +02:00
Damian Gryski
4d1134b403
add a warning to writing benchmarks
2017-04-24 09:07:22 +02:00
Damian Gryski
6d53d5b3ce
start an outline
2017-04-24 09:07:22 +02:00
Evan Shaw
cfa7e46c86
cgo bullet points
2016-09-21 13:03:33 +12:00
Evan Shaw
c2c096f8d0
Heap allocation bullet points
2016-09-21 13:02:26 +12:00
Damian Gryski
68aa1b444a
updates to profiling section
2016-05-26 10:39:34 +02:00
Damian Gryski
b932bb6dcb
asm notes and more stuff from intel
2016-05-25 09:25:57 +02:00
Damian Gryski
9c6fb8f19a
more updates
2016-05-23 14:21:18 +02:00
Ryan Cox
e2e0183bfb
add some links and outline content related to cachelines
2016-05-22 09:18:55 -07:00
Damian Gryski
168ea0928b
fix serialization bullet points
2016-05-22 16:13:24 +02:00
Damian Gryski
a84e99fca1
fix assembly / alternate impls sections
2016-05-22 16:13:10 +02:00
Damian Gryski
2a4f866cfc
add maps to runtime section
2016-05-22 16:12:50 +02:00
Damian Gryski
b30639a50a
clarify licensing
2016-05-22 13:14:31 +02:00
Bradley Falzon
29e151de85
Markdown-ify README.md
2016-05-22 20:28:42 +09:30
Damian Gryski
f355d2d9ec
more bits
2016-05-22 12:44:02 +02:00
Damian Gryski
8b5ceba15f
initial import
2016-05-22 08:21:23 +02:00