The Curious Engineer

All blogs / Performance / optimization

purplesyringa's blog

purplesyringa.moe/blog

Posts from purplesyringa's blog.

Performance / optimizationRustAlgorithms / data structuresCPU / microarchitecture

Posts
124 from 23 Apr 2024 to 16 Oct 2026
Posting
weekly (76 in the last year)
Kind
personal blog
Feed
https://purplesyringa.moe/blog/feed.rss

2026 62

  1. Superoptimizing an FPU emulator
  2. Superoptimizing an FPU emulator
  3. Things I wish I knew before starting speedrunning
  4. Things I wish I knew before starting speedrunning
  5. Who is vfmaddrnd231pd??
  6. Who is vfmaddrnd231pd??
  7. Vectorized CLZ and CTZ
  8. Vectorized CLZ and CTZ
  9. Grieving the loss of details
  10. Grieving the loss of details
  11. Write while learning
  12. Write while learning
  13. Don't call yourself an artisanal programmer
  14. Don't call yourself an artisanal programmer
  15. The NX bit is not just about security
  16. accept() and socket inheritance
  17. accept() and socket inheritance
  18. DuplicateHandle works on sockets, mostly
  19. DuplicateHandle works on sockets, mostly
  20. Race-free handle inheritance, maybe
  21. Race-free handle inheritance, maybe
  22. std::process::Command is a bad citizen on Windows
  23. std::process::Command is a bad citizen on Windows
  24. Impressions of Teal
  25. Thoughts on "SIMD in Pure Python"
  26. Thoughts on "SIMD in Pure Python"
  27. Impressions of Teal
  28. log is non-monotonic in PHP and Lua
  29. log is non-monotonic in PHP and Lua
  30. Sorted rank coding
  31. Sorted rank coding
  32. Quadrupling code performance with a "useless" if
  33. Quadrupling code performance with a "useless" if
  34. Optimal parse with phminposuw
  35. Optimal parse with phminposuw
  36. Does technical blogging spark joy?
  37. Does technical blogging spark joy?
  38. Suffix BWT vs cyclic shift BWT, and fast computation
  39. Suffix BWT vs cyclic shift BWT, and fast computation
  40. Optimizing Lua string literals to save 400 bytes
  41. This Wasm interpreter fits in a QR code
  42. You might misunderstand arithmetic coding
  43. You might misunderstand arithmetic coding
  44. This Wasm interpreter fits in a QR code
  45. Wasm is not quite a stack machine
  46. Wasm is not quite a stack machine
  47. Wait, if (flags & O_SYNC) is wrong?
  48. Wait, if (flags & O_SYNC) is wrong?
  49. Programming used to be free
  50. Programming used to be free
  51. No one owes you supply-chain security
  52. No one owes you supply-chain security
  53. Simplest hash functions
  54. Simplest hash functions
  55. There is absolutely nothing wrong with Web
  56. There is absolutely nothing wrong with Web
  57. Optimization lessons from a Minecraft structure locator
  58. Optimization lessons from a Minecraft structure locator
  59. Reinventing aliasing XOR mutability and lifetimes
  60. Reinventing aliasing XOR mutability and lifetimes
  61. An ode to bzip
  62. An ode to bzip

2025 34

  1. Faster practical modular inversion
  2. Faster practical modular inversion
  3. Rust's v0 mangling scheme in a nutshell
  4. Rust's v0 mangling scheme in a nutshell
  5. Faster comparison modulo α-equivalence
  6. Faster comparison modulo α-equivalence
  7. A look at Rust from 2012
  8. A look at Rust from 2012
  9. ntoh*/hton* is a bad API
  10. ntoh*/hton* is a bad API
  11. Finding duplicated code with tools from your CS course
  12. Finding duplicated code with tools from your CS course
  13. JVM exceptions are weird: a decompiler perspective
  14. JVM exceptions are weird: a decompiler perspective
  15. The expression problem and Rust
  16. The expression problem and Rust
  17. Fenwick layout for interval trees
  18. Fenwick layout for interval trees
  19. If I hear "design pattern" one more time, I'll go mad
  20. If I hear "design pattern" one more time, I'll go mad
  21. "AI discourse" is a joke
  22. "AI discourse" is a joke
  23. Hidden complexity in software development
  24. Hidden complexity in software development
  25. Splitting independent variables without SSA
  26. Splitting independent variables without SSA
  27. Fast limited-range conversion between ints and floats
  28. Fast limited-range conversion between ints and floats
  29. Recovering control flow structures without CFGs
  30. Recovering control flow structures without CFGs
  31. Why performance optimization is hard work
  32. Why performance optimization is hard work
  33. Falsehoods programmers believe about null pointers
  34. Falsehoods programmers believe about null pointers

2024 28

  1. The RAM myth
  2. The RAM myth
  3. Thoughts on Rust hashing
  4. Thoughts on Rust hashing
  5. Any Python program fits in 24 characters*
  6. Any Python program fits in 24 characters*
  7. The Rust Trademark Policy is still harmful
  8. The Rust Trademark Policy is still harmful
  9. Bringing faster exceptions to Rust
  10. Bringing faster exceptions to Rust
  11. We built the best "Bad Apple!!" in Minecraft
  12. We built the best "Bad Apple!!" in Minecraft
  13. Minecraft сравнивает массивы за куб
  14. WebP: The WebPage compression format
  15. WebP: The WebPage compression format
  16. Division is hard, but it doesn't have to be
  17. Division is hard, but it doesn't have to be
  18. I sped up serde_json strings by 20%
  19. I sped up serde_json strings by 20%
  20. The sentinel trick
  21. You might want to use panics for error handling
  22. You might want to use panics for error handling
  23. The sentinel trick
  24. У base64 есть неподвижная точка
  25. I thought I was smart enough to play with fire
  26. I thought I was smart enough to play with fire
  27. Recovering garbled Bitcoin addresses
  28. Recovering garbled Bitcoin addresses