TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #2232 2.22K
Вот почему базы данных — это сложно.

И именно поэтому с ними так интересно работать.

Хороший бенчмаркинг — особенно мощный инструмент для поиска узких мест в производительности. Я очень часто бенчмаркаю базы данных, но это актуально для любого софта, где важна производительность (а это должен быть вообще любой софт!).

5 правил программирования от Rob Pike

1. Правило 1. Невозможно заранее сказать, где программа будет тратить своё время. Узкие места возникают в неожиданных местах, поэтому не пытайтесь гадать и делать «оптимизации на скорость», пока не доказали, что именно там находится bottleneck.

2. Правило 2. Измеряйте. Не оптимизируйте производительность, пока не провели измерения, и даже после этого не делайте этого, если только одна часть кода явно не доминирует над остальными.

3. Правило 3. Сложные (fancy) алгоритмы работают медленно, когда n маленькое, а n обычно маленькое. У таких алгоритмов большие константы. Пока вы не уверены, что n часто бывает большим, не усложняйте. (Даже если n вырастет, сначала примените правило 2.)

4. Правило 4. Сложные алгоритмы более багованные, чем простые, и их значительно сложнее реализовывать. Используйте простые алгоритмы, а также простые структуры данных.

5. Правило 5. Данные — главное. Если вы выбрали правильные структуры данных и грамотно всё организовали, алгоритмы почти всегда становятся очевидными сами по себе. В программировании центральную роль играют структуры данных, а не алгоритмы.

👉 Java Portal
  • ❤ 5
More from @java_iibrary
  1. Sep 25, 2026Каждый Java-разработчик использует HashMap. Но задумывались ли вы… Почему его ёмкость всег…
  2. Sep 25, 2026Бесплатные ресурсы для изучения Java Конспект Effective Java — HugoMatilla/Effective-JAVA-…
  3. Sep 24, 2026Многие разработчики используют Java каждый день. Но мало кто знает, почему он стал одним и…
  4. Sep 24, 2026Java-разработчики, в чём разница между volatile и synchronized? Многие используют их. Но в…
  5. Sep 23, 2026Готовимся к System Design интервью уровня Middle и Senior Полезный конспект по проектирова…
  6. Sep 23, 2026Java-разработчики, знаете разницу между Shallow Copy и Deep Copy? Вы копируете объект, но…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →