Кэширование. Введение. Вычисление числа Фибоначчи

Содержание

Слайд 2

Введение. Вычисление числа Фибоначчи

Классический код
public final class Fibonacci {
public static

Введение. Вычисление числа Фибоначчи Классический код public final class Fibonacci { public
long calc(long n) { if (n < 2) { return n; } else { return calc(n - 1) + calc(n - 2); } } }

Слайд 3

Введение. Вычисление числа Фибоначчи

* Измерялось на машине Intel® Core™ i7-6700HQ CPU @

Введение. Вычисление числа Фибоначчи * Измерялось на машине Intel® Core™ i7-6700HQ CPU @ 2.60GHz × 8
2.60GHz × 8

Слайд 4

Введение. Вычисление числа Фибоначчи

Введение. Вычисление числа Фибоначчи

Слайд 5

Введение. Вычисление числа Фибоначчи

Оптимизированный код
public final class Fibonacci { public static long

Введение. Вычисление числа Фибоначчи Оптимизированный код public final class Fibonacci { public
calc(long n) { long a = 0L; long b = 1L; for (long i = 0; i < n - 1; i++) { long c = a + b; a = b; b = c; } return b; } }

Слайд 6

Введение. Вычисление числа Фибоначчи

* Измерялось на машине Intel® Core™ i7-6700HQ CPU @

Введение. Вычисление числа Фибоначчи * Измерялось на машине Intel® Core™ i7-6700HQ CPU @ 2.60GHz × 8
2.60GHz × 8

Слайд 7

Кэширование. Определение

Кэширование - обмен скорости на память

Кэширование. Определение Кэширование - обмен скорости на память

Слайд 8

Кэширование. Что стоит кэшировать

Что кэшировать?
Результаты вычислений часто повторяющихся запросов;
Соединения, потоки. Например, connection

Кэширование. Что стоит кэшировать Что кэшировать? Результаты вычислений часто повторяющихся запросов; Соединения,
pool для бд, почтового сервера.

Слайд 9

Кэширование. Что стоит кэшировать. Что не надо

Что кэшировать?
Результаты вычислений часто повторяющихся запросов;
Соединения,

Кэширование. Что стоит кэшировать. Что не надо Что кэшировать? Результаты вычислений часто
потоки. Например, connection pool для бд, почтового сервера.
Что кэшировать не нужно?
Данные, запрос которых маловероятен;
Часто редактируемые (обновляемые) данные.

Слайд 10

Кэширование. Виды

Локальный кэш.
Плюсы:
Простота
Скорость
Надежность.

Кэширование. Виды Локальный кэш. Плюсы: Простота Скорость Надежность.

Слайд 11

Кэширование. Виды

Локальный кэш.
Плюсы:
Простота
Скорость
Надежность.
Минусы:
Невозможность масштабирования
Нагрузка на память. Вызов сборщика мусора.

Кэширование. Виды Локальный кэш. Плюсы: Простота Скорость Надежность. Минусы: Невозможность масштабирования Нагрузка

Слайд 12

Кэширование. Виды

Внешний кэш.
Плюсы:
Масштабирование.

Кэширование. Виды Внешний кэш. Плюсы: Масштабирование.

Слайд 13

Кэширование. Виды

Внешний кэш.
Плюсы:
Масштабирование.
Минусы:
Накладные расходы на сетевое взаимодействие и сериализацию.
* Расходы на

Кэширование. Виды Внешний кэш. Плюсы: Масштабирование. Минусы: Накладные расходы на сетевое взаимодействие
сериализацию решаются выбором подходящего сериализатора.

Слайд 14

Кэширование. Инвалидация

Кэширование. Инвалидация

Слайд 15

Кэширование. Инвалидация

Инвалидация кэша:
Сбрасывать по ключу

Кэширование. Инвалидация Инвалидация кэша: Сбрасывать по ключу

Слайд 16

Кэширование. Инвалидация

Инвалидация кэша:
Сбрасывать по ключу
Сбрасывать весь кэш

Кэширование. Инвалидация Инвалидация кэша: Сбрасывать по ключу Сбрасывать весь кэш

Слайд 17

Кэширование. Инвалидация

Инвалидация кэша:
Сбрасывать по ключу
Сбрасывать весь кэш
Кэшировать на время

Кэширование. Инвалидация Инвалидация кэша: Сбрасывать по ключу Сбрасывать весь кэш Кэшировать на время

Слайд 18

Кэширование. Инвалидация

Инвалидация кэша:
Сбрасывать по ключу
Сбрасывать весь кэш
Кэшировать на время
Неинвалидировать )

Кэширование. Инвалидация Инвалидация кэша: Сбрасывать по ключу Сбрасывать весь кэш Кэшировать на время Неинвалидировать )

Слайд 19

Кэширование. Оценка эффективности

Эффективность кэширования:
Производительность

Кэширование. Оценка эффективности Эффективность кэширования: Производительность

Слайд 20

Кэширование. Оценка эффективности

Эффективность кэширования:
Производительность
Количество попаданий\промахов

Кэширование. Оценка эффективности Эффективность кэширования: Производительность Количество попаданий\промахов

Слайд 21

Кэширование. Типичные ошибки

Кэширование. Типичные ошибки

Слайд 22

Кэширование. Типичные ошибки

Типичные ошибки:
Кэш как база данных

Кэширование. Типичные ошибки Типичные ошибки: Кэш как база данных

Слайд 23

Кэширование. Типичные ошибки

Типичные ошибки:
Кэш как база данных
Кэш как прикрытие неоптимальности работы системы

Кэширование. Типичные ошибки Типичные ошибки: Кэш как база данных Кэш как прикрытие неоптимальности работы системы

Слайд 24

Кэширование. Выводы

Нельзя просто так взять и применить кэш. Нужно:
Помнить, что кэш -

Кэширование. Выводы Нельзя просто так взять и применить кэш. Нужно: Помнить, что
не БД
Помнить, что кэш не спрячет костыли
Выбрать что кэшировать
Выбрать вид кэша - локальный или внешний
Выбрать способ\способы инвалидации кэша
Всегда и еще раз всегда мониторить работу с кэшем. Производить оценку