🗊 Презентация Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали

Нажмите для полного просмотра!
Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №1 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №2 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №3 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №4 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №5 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №6 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №7 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №8 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №9 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №10 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №11 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №12 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №13 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №14 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №15 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №16 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №17 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №18 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №19 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №20 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №21 Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали, слайд №22

Вы можете ознакомиться и скачать презентацию на тему Протекающие абстракции, Или зачем современному программисту знать все эти низкоуровневые детали. Доклад-сообщение содержит 22 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Протекающие абстракции Или зачем современному программисту знать все эти низкоуровневые детали
Описание слайда:
Протекающие абстракции Или зачем современному программисту знать все эти низкоуровневые детали

Слайд 2


Что пишет типичный современный программист
Описание слайда:
Что пишет типичный современный программист

Слайд 3


Что пишет типичный современный программист
Описание слайда:
Что пишет типичный современный программист

Слайд 4


А то и еще хуже
Описание слайда:
А то и еще хуже

Слайд 5


На самом деле все еще хуже
Описание слайда:
На самом деле все еще хуже

Слайд 6


И как с этим теперь жить? «Я лучше буду знать что-то одно, но буду знать это хорошо» «Пусть за меня думает компьютер, я буду решать только...
Описание слайда:
И как с этим теперь жить? «Я лучше буду знать что-то одно, но буду знать это хорошо» «Пусть за меня думает компьютер, я буду решать только высокоуровневые вопросы» «Преждевременная оптимизация – корень всех зол» «Будет тормозить – будем думать»

Слайд 7


Протекающие абстракции Leaky abstraction © Joel Spolsky, Что же может протечь? Проблемы с безопасностью Проблемы с производительностью Ошибки...
Описание слайда:
Протекающие абстракции Leaky abstraction © Joel Spolsky, Что же может протечь? Проблемы с безопасностью Проблемы с производительностью Ошибки Документированные особенности реализации

Слайд 8


Например Transmission Control Protocol Абстракция надежного соединения через ненадежную сеть Реальная сеть теряет пакеты или доставляет их не по...
Описание слайда:
Например Transmission Control Protocol Абстракция надежного соединения через ненадежную сеть Реальная сеть теряет пакеты или доставляет их не по порядку TCP имитирует надежное соединение

Слайд 9


Но TCP использует подтверждения, таймауты и повторную передачу TCP рвет соединение при трех последовательных таймаутах TCP гарантирует доставку, но...
Описание слайда:
Но TCP использует подтверждения, таймауты и повторную передачу TCP рвет соединение при трех последовательных таймаутах TCP гарантирует доставку, но не гарантирует время доставки

Слайд 10


Другой пример Java/C# используют сборку мусора Полезная абстракция, которая устраняет висячие ссылки и утечки памяти Снижение стоимости разработки от...
Описание слайда:
Другой пример Java/C# используют сборку мусора Полезная абстракция, которая устраняет висячие ссылки и утечки памяти Снижение стоимости разработки от 2 до 5 раз

Слайд 11


Но Если вы не думаете, куда (а также, когда и почему) у вас деваются объекты, вы будете делать ошибки. В С++ и C# это будут разные ошибки. Кстати, в...
Описание слайда:
Но Если вы не думаете, куда (а также, когда и почему) у вас деваются объекты, вы будете делать ошибки. В С++ и C# это будут разные ошибки. Кстати, в Java/C# утечки памяти очень даже бывают…

Слайд 12


Exception security C++ style RAII (Resource allocation is initalization) Деструкторы зовутся в конце блока Завернуть выделяемый ресурс в объект с...
Описание слайда:
Exception security C++ style RAII (Resource allocation is initalization) Деструкторы зовутся в конце блока Завернуть выделяемый ресурс в объект с конструктором/деструктором, и исключения вам не страшны

Слайд 13


Пример из жизни В Android есть две кучи Managed heap (Dalvik) Native heap (OpenGL/BMP) Объектам нативной кучи надо явно звать recycle. Куча приколов...
Описание слайда:
Пример из жизни В Android есть две кучи Managed heap (Dalvik) Native heap (OpenGL/BMP) Объектам нативной кучи надо явно звать recycle. Куча приколов Нативная куча кончилась, вы зовете gc, а толку нет Утечки памяти в нативной куче Висячие ссылки в управляемой куче И прочие радости жизни И все это в условиях жестко ограниченной памяти.

Слайд 14


Пример из жизни (самый противный вариант) Класс-обертка вокруг битмапа в нативной куче Битмап большой, обертка маленькая Насоздавали битмапов,...
Описание слайда:
Пример из жизни (самый противный вариант) Класс-обертка вокруг битмапа в нативной куче Битмап большой, обертка маленькая Насоздавали битмапов, нативная куча кончилась, а управляемая куча почти не занята. Сборка мусора не проходит (не видит, чего собирать-то)

Слайд 15


Пример из жизни (продолжение) Ну давайте везде звать recycle()? [] Поэтому при работе с битмапами постоянно ставишь recycle. А вот мы и подобрались к...
Описание слайда:
Пример из жизни (продолжение) Ну давайте везде звать recycle()? [] Поэтому при работе с битмапами постоянно ставишь recycle. А вот мы и подобрались к объяснению баги, описанной в начале. Даже в доках от гугла есть пример отдачи картинки в OpenGL, где после трансфера её туда битмап "ресайклится". Ага! У меня в коде было тоже самое! Но тот самый злосчастный экран отличалcя от остальных тем, что битмапы грузил не с SD-карты, а из ресурсов прилады! А они (ресурсы) грузятся один раз на всё приложение. И, будучи поресайкленной, битмапа из ресурсов оставалась таковой до рестарта приложения []

Слайд 16


На самом деле все еще хуже Приколы вылезают не только при явном освобождении памяти Приколы могут вылезать если вы используете два разных сборщика...
Описание слайда:
На самом деле все еще хуже Приколы вылезают не только при явном освобождении памяти Приколы могут вылезать если вы используете два разных сборщика мусора Например: CLR (.Net) использует mark’n’sweep COM (legacy VB) использует reference count

Слайд 17


В чем разница? Mark’n’sweep Сборка мусора дорогая операция Зовется только от горя (когда память кончилась) Refcount Сборка мусора происходит «сама»,...
Описание слайда:
В чем разница? Mark’n’sweep Сборка мусора дорогая операция Зовется только от горя (когда память кончилась) Refcount Сборка мусора происходит «сама», звать ее не надо Никаких хуков на «что-то мы сожрали много памяти» нету Тот же сценарий: маленькая обертка в mark’n’sweep куче вокруг большого refcount объекта Refcount куча разрослась до хрен-знает-скольколлиона байт, а mark’n’sweep про это ни сном, ни духом

Слайд 18


Безопасность
Описание слайда:
Безопасность

Слайд 19


Dynamic SQL, говорите?
Описание слайда:
Dynamic SQL, говорите?

Слайд 20


Хорошие практики Ну и что? – скажут многие Не надо знать низкоуровневые детали и не надо знать, что может протечь Надо знать хорошие практики, как...
Описание слайда:
Хорошие практики Ну и что? – скажут многие Не надо знать низкоуровневые детали и не надо знать, что может протечь Надо знать хорошие практики, как бороться с протечками

Слайд 21


Хорошие практики не панацея Хорошая практика: нельзя совать пальцы в розетку
Описание слайда:
Хорошие практики не панацея Хорошая практика: нельзя совать пальцы в розетку

Слайд 22


Во что это может вылиться
Описание слайда:
Во что это может вылиться



Похожие презентации
Mypresentation.ru
Загрузить презентацию