Welcome to MikeDaDev's Blog – notes on Java, backend & system design.

Explore
MikeDaDev's Blog

#optimization

Things I've written about #optimization
  • in ai / slm

    Small Language Models (SLM)

    Nhìn Small Language Models (1B - 8B) từ góc độ người làm kiến trúc: tính VRAM và KV-Cache, chọn kiểu lượng tử hoá (AWQ hay GGUF), chạy Dynamic Multi-LoRA trên vLLM, ghép SLM với LLM thành Compound AI, và bài toán TCO, ROI.

  • java advanced performance techniques

    Các kỹ thuật tối ưu hiệu năng Java ở cấp hệ thống: branchless programming, autoboxing, EnumSet, Virtual Threads, bẫy Hibernate/JPA, Caffeine cache, GraalVM Native Image, data locality, lock-free và SIMD.

  • high-performance java techniques

    Mấy kỹ thuật tối ưu hiệu năng Java ít người để ý: object pooling, primitive arrays, lock-free, batch, zero-copy, viết code dễ cho JIT, kèm ví dụ, cơ chế bên dưới và lúc nào không nên dùng.

  • nâng cấp java 25 LTS

    Nhìn Java 25 LTS từ góc độ người làm kiến trúc: so với Java 21/17 thì hơn ở đâu. Compact Object Headers (JEP 519), Stream Gatherers (JEP 485), Flexible Constructor Bodies (JEP 513), Generational ZGC & Shenandoah, Scoped Values (JEP 506), và cách tính bài toán ROI khi nâng cấp hệ thống cloud-native.

  • in sql / oracle

    tối ưu SQL trong Oracle

    Ghi chép tối ưu Oracle SQL cho Database Architect và Principal Engineer: Cost-Based Optimizer (CBO) chạy ra sao, 5 kiểu Index Access Path, Hash Join tràn PGA, cách đọc DBMS_XPLAN với ALLSTATS LAST, và cách khoá Plan bằng SQL Plan Management (SPM).

  • in java / jvm

    Optional trong Java

    Nhìn kỹ Java Optional: mỗi instance tốn 16-24 bytes heap và khi nào thì chuyện đó thật sự đáng lo, 6 anti-pattern hay gặp, khác biệt quan trọng giữa orElse và orElseGet, và cách làm null-safety bài bản hơn với JSpecify.

  • in java / jvm

    string vs stringbuilder vs stringbuffer

    Chuỗi ký tự trong JVM hoạt động thế nào: Compact Strings (JEP 254), việc toán tử + chuyển từ StringBuilder sang invokedynamic StringConcatFactory (JEP 280), so sánh String, StringBuilder, StringBuffer và chuyện JIT bỏ lock của StringBuffer nhờ Escape Analysis.

  • threadpool executor pool size

    ThreadPoolExecutor nhìn từ góc kiến trúc: biến bit ctl, Định luật Little & công thức Goetz để tính Pool Size, cái bẫy Unbounded Queue gây OOM, Thread Starvation Deadlock và so sánh với Virtual Threads.