The Curious Engineer

All blogs / Performance / optimization

Experiments in program optimisation ququMy blogwewe

pzemtsov.github.io

Experiments and research in program performance and optimisation

Performance / optimizationJava / JVMAlgorithms / data structures

’15’20’25
Posts
40 from 15 Apr 2014 to 7 Oct 2019
Posting
quiet since 2019
Kind
personal blog
Feed
http://pzemtsov.github.io/feed.xml

2019 4

  1. Abnormal string hashing
  2. Making a char searcher in C
  3. Searching for a better indexOf
  4. To allocate or to pool?

2018 1

  1. Building a fast queue between C++ and Java

2017 2

  1. The slow currentTimeMillis()
  2. Statistical variables in Java: not quite legal but very fast

2016 6

  1. Turbo Boost and multi-threading performance
  2. A bug story: data alignment on x86
  3. Searching in a constant set using conflict-free hashing
  4. Home-made hash tables in C++: a race against Java
  5. Home-made hash tables in Java
  6. Home-made binary numbers

2015 12

  1. Implementing Peano arithmetic
  2. Choosing the hash map's capacity
  3. Optimising the hash-based Life
  4. CRC32: intrinsic, Java or C with JNI?
  5. Don't trust a micro-benchmark
  6. More optimisations of division-based hash: Karatsuba's method
  7. The fun and the cost of refactoring
  8. Optimising division-based hash functions
  9. Hash functions: disassembling and measuring performance
  10. Game of Life, hash tables and hash codes
  11. Standard input, buffering and affinity mask
  12. On the benefits of stream buffering in Java

2014 15

  1. More experiments with cache
  2. How cache affects demultiplexing of E1
  3. Lambdas and other callbacks in Java
  4. Macros, call by name, lambda and Jensen's device
  5. Bug story 2: Unrolling the 16×16 matrix transposition, or be careful with macros
  6. How to transpose a 16×16 byte matrix using SSE
  7. A bug story: testing your test code
  8. Fast E1 de-multiplexing in C using SSE/AVX
  9. Size does matter
  10. How to make C run as fast as Java
  11. The mystery of an unstable performance
  12. From macros to templates
  13. One handy C idiom: multi-statement macro
  14. De-multiplexing of E1 stream: converting to C
  15. De-multiplexing of E1 streams in Java