Що робить ресурси «дорогими»?


10

Я читаю сплячий режим, і я натрапив на твердження типу "З'єднання JDBC, відкриті для декількох запитів, - це не дуже добре, оскільки це дорогий ресурс".

Що означає дорогий ресурс?

Редагувати: Я додаю те, що невідомий користувач додав як коментар нижче.

Якщо встановлення підключення до бази даних коштує дорого, то чому б не використовувати одне і те ж і знову і знову (не кешувати), а не закривати його і відкривати щоразу?


2
Дорогий означає, що він зашкодить вам, якщо ви будете користуватися ним занадто часто або не в зазначений спосіб.
Олександр Гесслер

Відповіді:


20

Дорогий ресурс - це той, що:

  • Створювати / ініціалізувати потрібно багато часу. Будь-яке з'єднання з базою даних може зайняти 1-2 секунди, щоб завершити рукостискання.
  • Використовує багато пам'яті. Читання повного завантаження файлу в байтовий масив в пам'яті перед його збереженням витратить значну кількість пам'яті протягом короткого періоду часу.
  • Використовує багато циклів процесора. Розрахунки на велику колекцію даних можуть оподатковувати ваш процесор, поки він виконує розрахунки.

Кожен з дорогих ресурсів може спричинити проблеми масштабування . Коротше кажучи, ви не можете одночасно робити занадто багато цих дорогих операцій, або ви не зможете відповісти вашим користувачам досить швидко.


Мені подобається погодитися, але мушу зазначити, що це суперечить прикладу @Sun дав. Оскільки налаштування з'єднання є дорогим, ви б тримали ваш зв’язок відкритим.
користувач невідомий

2
У цьому конкретному випадку дозвольте мені уточнити: Якщо щось потрібно для створення / ініціалізації, потрібно обмежити кількість разів, коли ви створюєте / ініціалізуєте цей ресурс. Підключення до бази даних не забирають багато ресурсів, поки вони відкриті, тому бажано об'єднати ці ресурси.
Берін Лорич

5

Це можуть бути різноманітні речі, залежні від конкретного ресурсу. Тож у вас можуть бути такі:

  • Скільки пам’яті потрібно для роботи.
  • Час, необхідний для з'єднання.
  • Накладні витрати в підтримці цього зв’язку.

і так далі.

Інші речі, які можуть зробити щось дороге, можуть бути, якщо він вимагає доступу до жорсткого диска або до мережі під час роботи тощо.


2

Дороге повинно бути з префіксом "обчислювально". Обчислювальні витрати використовуються для позначення кількості часу або ресурсів (процесор, пам'ять, диск, пропускна здатність мережі), необхідних для виконання операції, алгоритму чи програми.


2

Витрати на підключення до бази даних пов'язані з низкою факторів.

  • Підключення до бази даних повільно налаштовуються і вимагають ресурсів на стороні клієнта та сервера. Ось чому з'єднання об'єднані.
  • Відкриті транзакції мають накладні витрати, що вимагає управління як клієнтом, так і сервером.
  • Відкриті транзакції можуть блокувати інші оновлення. Це сповільнить загальну продуктивність.

При цьому вам потрібно тримати з'єднання (або принаймні трансакцію) відкритим досить довго, щоб переконатися, що транзакція пройшла тест на кислоту . (Ізольований стійкий до атомів)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.