Изучение кода с использованием инструментов архитектуры в Visual Studio Ultimate 2012
Некоторые методы проектирования и оптимизации кода
-
Upload
msu-gml-videogroup -
Category
Education
-
view
63 -
download
3
Transcript of Некоторые методы проектирования и оптимизации кода
![Page 1: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/1.jpg)
Некоторые методы проектирования и оптимизации кода
Антон Зачесов
Video Group CS MSU Graphics & Media Lab
![Page 2: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/2.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Зачем все это нужно?
Проектирование проекта
Оптимизация кода
Полезное в работе с Visual Studio
2
![Page 3: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/3.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Описание проблемы (1/2)
3
![Page 4: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/4.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Описание проблемы (2/2)
Следствия отсутствия (либо некорректного) проектирования/оптимизации:
Приложение работает неочевидно (делает не то, что вы ожидаете)
Приложение работает медленнее, чем должно (или вы бы хотели)
Код приложения настолько ужасен, что хочется его выкинуть и переписать заново
4
![Page 5: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/5.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Постановка проблемы Кажущиеся способы решения
Увеличить сроки разработки
Увеличить число людей в проекте
Обеспечить программистов адекватными требованиями к разработке
В 90% случаев эти способы не сработают
5
![Page 6: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/6.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Постановка требований Пример
«Хочу в приложении кнопку сделать хорошо”, и чтобы она всегда работала»
Или более адекватный:
«Нужно сделать плагин синхронизации стереовидео во времени
(с учетом смещения в 0,5 кадра)»
6
![Page 7: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/7.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Черты идеального продукта
Соответствие целям пользователя
Понятность и очевидность поведения
Стабильность
Быстрый отклик на действия пользователя
Адекватная производительность
7
![Page 8: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/8.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Черты идеального проекта Как приблизиться к идеалу?
Разобраться в этом – цель данного доклада
8
![Page 9: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/9.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Зачем все это нужно?
Проектирование проекта
Проектирование взаимодействия
Проектирование кода
Оптимизация кода
Полезное в работе с Visual Studio
9
![Page 10: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/10.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование
«Проектирование – то, чем программисты занимаются 20 минут перед тем, как начать писать код»
(бородатый анекдот)
10
![Page 11: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/11.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование Суть
Весь процесс создания программы от постановки требований до начала написания кода
Цели:
Определить usecases программы
Найти контакт с пользователем программы
Облегчить жизнь программистам-потомкам
11
![Page 12: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/12.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Виды проектирования
12
![Page 13: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/13.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Виды проектирования Различия
Проектирование кода (фактически, программирование) полностью на совести программиста
Проектирование взаимодействия программист не в состоянии сделать один
«Программирование определяется краевыми случаями, а проектирование – центральными»
(Алан Купер)
13
![Page 14: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/14.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Зачем все это нужно?
Проектирование проекта
Проектирование взаимодействия
Проектирование кода
Оптимизация кода
Полезное в работе с Visual Studio
14
![Page 15: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/15.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование взаимодействия
Цель – преодолеть подобную ситуацию
15
![Page 16: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/16.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование взаимодействия «Танцующий медведь»
«Танцует медведь просто ужасно, но чудо не в том, что он танцует хорошо, а в том, что он вообще танцует» (Алан Купер)
Суровая реальность в том, что многие приложения похожи на «танцующих медведей»
17
![Page 17: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/17.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование взаимодействия Основная цель
Главное – понять цели пользователя и сделать их достижение возможным
Выбрать, какие функции могут понадобиться пользователю для достижения цели, – не главное. Они могут не соответствовать целям
18
![Page 18: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/18.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование взаимодействия Персонажи
Задача – максимально подробно описать пользователя программы
19
Достаточно подробно Недостаточно подробно
![Page 19: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/19.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование взаимодействия Сценарии
Цель – получить минимальное количество проблем с основными функциями
Задача – максимально детально описать процесс регулярного использования программы
Вспоминаем:
«Программирование определяется краевыми случаями, а проектирование – центральными»
(Алан Купер)
20
![Page 20: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/20.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Зачем все это нужно?
Проектирование проекта
Проектирование взаимодействия
Проектирование кода
Оптимизация кода
Полезное в работе с Visual Studio
21
![Page 21: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/21.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование кода
«Есть два способа разработки проекта: сделать его настолько простым, чтобы было очевидно, что в нем нет недостатков, или
сделать его настолько сложным, чтобы в нем не было очевидных недостатков»
(С. А. Р. Хоар)
22
![Page 22: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/22.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование кода Мое восприятие
Проектирование кода – всегда изобретение велосипеда
Важно не впадать в крайности:
23
…
![Page 23: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/23.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование кода Цели (1/3)
Одна из целей – оказаться слева
24
![Page 24: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/24.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование кода Цели (2/3)
Основные цели:
реализация всех требований к проекту
реализация всех требований проектирования взаимодействия
ничего больше
Побочные цели:
понятность и читабельность кода
устойчивость к модификациям
обычно способствуют основной
25
![Page 25: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/25.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование кода Цели (3/3)
«Книга закончена не тогда, когда в нее нечего добавить,
а тогда, когда из нее нечего выбросить» (Алан Купер)
26
![Page 26: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/26.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование кода Модели
Нисходящая Проектирование от идеи к реализации
Восходящая Проектирование от деталей конструктора к результату
Смешанная Тоже работает
27
Нисходящее проектирование
![Page 27: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/27.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Проектирование алгоритма
Из личного опыта:
Простые идеи работают чаще, чем сложные
Очень полезным является прототипирование
«Прототипирование – написание абсолютно
минимального объема подлежащего выбрасыванию кода, нужного для ответа на отдельный вопрос проектирования»
(Алан Купер)
29
![Page 28: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/28.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Прототипирование
Лучше использовать не ту среду, в которой пишется финальный продукт
Чаще всего это MATLAB
В своей практике я использовал Adobe After Effects и Photoshop
Если что-то пошло не так: «Если сомневаетесь, используйте грубую силу» (Батлер Пэмпсон)
30
![Page 29: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/29.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Повторное использование кода
Очень полезно
Тем не менее, крайности опасны
31
…
![Page 30: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/30.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Понятность кода
«Я никогда не встречал человека, желающего читать 17000 страниц документации, а если бы встретил, то убил бы его»
(Джозеф Кастелло)
Вывод: Лучшая документация кода – сделать его читабельным и понятным в первую очередь для других программистов
32
![Page 31: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/31.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Зачем все это нужно?
Проектирование проекта
Оптимизация кода
Статический анализ кода
Полезное в работе с Visual Studio
33
![Page 32: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/32.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Оптимизация
Цель – избежать подобной ситуации:
34
![Page 33: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/33.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Оптимизация Методы
Высокоуровневая
Использование кэширования
Предоставление быстрого отклика на запрос / прогресс-бара
Алгоритмические оптимизации
Низкоуровневая
35
![Page 34: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/34.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Оптимизация Низкоуровневая
Метод «орлиного взора»
Использование профилировщиков
Профилировка – измерение производительности программы с целью нахождения Hot Spots (участков программы, на выполнение которых расходуется наибольшее количество времени)
36
![Page 35: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/35.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Оптимизация Примеры профилировщиков
Visual Studio Ultimate
Intel Parallel Amplifier
AQTime
…
37
![Page 36: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/36.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Профилировщик Пример использования
38
Профилировка библиотеки StereoToMultiview
![Page 37: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/37.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Пример оптимизации Результат профилировки
39
![Page 38: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/38.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Пример оптимизации Шаг 1
Проверка настроек оптимизации компилятора
40
Было:
Стало:
![Page 39: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/39.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Пример оптимизации Результат шага 1
41
![Page 40: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/40.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Пример оптимизации Шаг 2
Исправление указанных профилировщиком мест
42
![Page 41: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/41.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Пример оптимизации Исправление кода
43
![Page 42: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/42.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Пример оптимизации Результат шага 2
44
![Page 43: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/43.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Пример оптимизации Финальный вариант кода
45
![Page 44: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/44.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Пример оптимизации Результат
46
![Page 45: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/45.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Пример оптимизации Исходный вариант
47
![Page 46: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/46.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Зачем все это нужно?
Проектирование проекта
Оптимизация кода
Оптимизация кода
Статический анализ кода
Полезное в работе с Visual Studio
48
![Page 47: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/47.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Статический анализ кода Идеи
“The first step is fully admitting that the code you write is riddled with errors”
(John Karmak)
“The more I push code through static analysis, the more I’m amazed that computers boot at all”
(Dave Revell)
49
![Page 48: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/48.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Статический анализ кода
Static Code Analysis – анализ кода, проводимый без реального выполнения программы
Поиск очевидных (и не очень) ошибок в процессе компиляции кода
Мной используется PVS-Studio
50
![Page 49: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/49.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Зачем все это нужно?
Проектирование проекта
Оптимизация кода
Полезное в работе с Visual Studio
51
![Page 50: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/50.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Visual Studio
Позволяет эффективно разделять код на проекты (библиотечные и исполняемые модули)
Используется в проектах лаборатории
Чаще всего – работа с многими проектами одновременно
52
![Page 51: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/51.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Настройки Visual Studio Project Dependencies
Некорректная настройка: Ошибки вида Unresolved External или Duplicate Identifier
Глубинный смысл: Код проектов, имеющих зависимости, генерируется позже и может явно ссылаться на уже сгенерированный код проектов-зависимостей
53
![Page 52: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/52.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Настройки Visual Studio Runtime Library
Некорректная настройка: Ошибки вида … already defined in LIBCMT.lib и unresolved external
Глубинный смысл: При выборе *dll собранной программе
добавляется зависимость от системных динамических библиотек, например, MSVCR90.dll
55
![Page 53: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/53.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Настройки Visual Studio Настройка Debug
В исполняемом коде нужна информация об исходном коде
Необходимо настроить компиляцию кода с информацией для дебага (Debug Information)
Необходимо включить опцию линковки с информацией для дебага (Generate Debug Info)
56
![Page 54: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/54.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Настройки Visual Studio Link Library Dependencies
Некорректная настройка Ошибки вида unresolved external
Глубинный смысл: Бинарный код всех библиотек-зависимостей копируется в главную библиотеку
Следствие: Иногда линковка занимает много времени
57
![Page 55: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/55.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Настройки Visual Studio Compile As
Некорректная настройка: Ошибки при компиляции С++ инструкций по правилам С
Глубинный смысл: Вообще говоря, просто выбор компилятора для конкретного файла
58
![Page 56: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/56.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Литература
1. А. Купер, “Психбольница в руках пациентов”.
2. С. Макконнелл, “Совершенный код”.
60
![Page 57: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/57.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Вопросы?
61
![Page 58: Некоторые методы проектирования и оптимизации кода](https://reader034.fdocuments.us/reader034/viewer/2022042716/55a85e521a28abcd0b8b496c/html5/thumbnails/58.jpg)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Лаборатория компьютерной
графики и мультимедиа
Видеогруппа — это:
Выпускники в аспирантурах Англии, Франции, Швейцарии (в России в МГУ и ИПМ им. Келдыша)
Выпускниками защищены 5 диссертаций
Наиболее популярные в мире сравнения видеокодеков
Более 3 миллионов скачанных фильтров обработки видео
62