Commit Graph

264 Commits

Author SHA1 Message Date
Damian Gryski
962bf25dd2 notes from @egonelbre 2018-03-12 10:02:06 -07:00
Damian Gryski
6e5850d2e1 spelling 2018-03-12 10:01:49 -07:00
Damian Gryski
4b1eb662d6 mention optimizing around slices 2018-03-12 10:01:32 -07:00
Damian Gryski
c8ad697848 add note about sorting 2018-03-12 08:44:25 -07:00
Damian Gryski
c6692519cc talk about microbenchmarks not representing real-world performance improvements 2018-03-10 10:01:51 -08:00
Damian Gryski
8baa4589e3 mumblings on branch prediction 2018-03-09 11:05:45 -08:00
Damian Gryski
201384442f more random thoughts from boring plane flight 2018-03-09 08:53:55 -08:00
Damian Gryski
72512ce63f add tpop authors 2018-03-09 08:53:55 -08:00
Damian Gryski
b22508f27f clarify source of tpop quote 2018-03-08 18:43:41 -08:00
Damian Gryski
bcd6cdac21 put in full knuth quote to help translators. 2018-03-08 13:54:40 -08:00
Damian Gryski
d886290924 gollvm might be a contender 2018-03-08 13:54:31 -08:00
Damian Gryski
83d3c3cfb3 mention uses of syso files 2018-03-08 13:54:22 -08:00
Damian Gryski
106607b31c more topics for pprof in prod, move to end of section 2018-03-08 07:39:22 -08:00
Damian Gryski
f31c45421f talk about localhost and ssh tunnels for pprof 2018-03-08 07:24:41 -08:00
Damian Gryski
8d41f4151b add pointer writebarrier note 2018-03-07 17:16:27 -08:00
Joey Pestonit
5ce6c4141c Update link
Looks like that link doesn't work anymore. Also not sure if this was the text you're referring to -
 (https://gamehacking.org/faqs/Small_Memory_Software.pdf)
2018-03-07 16:02:02 -08:00
Damian Gryski
c17a6c00b5 perfbook has moved beyond just links now 2018-03-04 20:32:26 -08:00
Damian Gryski
8301f7e09f add reduced data copying to tuning 2018-03-04 20:32:26 -08:00
Damian Gryski
a6cde628a0 fix link syntax 2018-03-04 20:32:26 -08:00
Damian Gryski
65ce05dffd expand on time parsing example 2018-03-04 15:42:22 -08:00
Damian Gryski
de5a84a467 add section on optimizing concurrency 2018-03-04 15:42:10 -08:00
Damian Gryski
6ac679fbdc mention simd in assembly section 2018-03-04 12:39:59 -08:00
Damian Gryski
afc0d9710b add memoization as a topic for caching section 2018-03-04 11:57:46 -08:00
Damian Gryski
f8123115f5 more yada yada opertor to the end of list 2018-03-04 11:01:31 -08:00
Damian Gryski
c30ae174ef add more load testing tooling 2018-03-04 10:59:04 -08:00
Damian Gryski
87e785b45a explitly call out TODO for log parsing example 2018-03-04 10:57:19 -08:00
Damian Gryski
033e0f6595 clarify "optimal cache wasn't worth it" 2018-03-04 10:54:41 -08:00
Damian Gryski
d524aca4c2 mirror style for randomized cache insertion sentence 2018-03-04 10:52:51 -08:00
Damian Gryski
d2a4abc11d kill extra word 2018-03-04 10:50:54 -08:00
Damian Gryski
4ede1612ce more mumblings about compressed structures 2018-03-04 10:43:59 -08:00
Damian Gryski
4c3603c2d3 add smaller data type to space-shrinking options 2018-03-04 10:39:36 -08:00
Damian Gryski
90dcb8b054 merge odd loose sentence 2018-03-04 10:38:29 -08:00
Damian Gryski
dc726907d6 add another explicit TODO 2018-03-04 10:38:21 -08:00
Damian Gryski
99e82b8791 explicitly call out TODOs 2018-03-04 10:34:44 -08:00
Damian Gryski
48db8aa7af clean up loose setences in choices section 2018-03-04 10:34:09 -08:00
Damian Gryski
68630e7636 prosify performance estimation notes 2018-03-04 10:33:58 -08:00
Damian Gryski
d5fb380c68 tweak some links 2018-03-04 10:27:25 -08:00
Damian Gryski
c4dbd6003c prosify bitfunnel numbers 2018-03-04 10:23:01 -08:00
Valentin Deleplace
31bdd44214 Typo mixer integer programming -> mixed integer programming
That looked intriguing but I think it was a typo.
2018-03-04 06:43:25 -08:00
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