Голдштейн С., Зурбалев Д., Флатов И., Оптимизация приложений на платформе .Net
ДМК-Пресс, 2017 г., 978-5-94074-944-8, 978-5-97060-487-8
Наличие в интернет-магазинах
Описание книги
Купить эту книгу можно в интернет-магазинах
Скачать, но не бесплатно эту книгу можно в интернет-магазинах
Читать онлайн
Доступен для чтения фрагмент книги
Ключевые слова
Поделиться ссылкой на книгу
Содержание книги
Об авторах
О научных редакторах
Благодарности
Введение
ГЛАВА 1.
Характеристики производительности
Требования к производительности
Характеристики производительности
В заключение
ГЛАВА 2.
Измерение производительности
Подходы к измерению производительности
Встроенные инструменты Windows
Счетчики производительности
Механизм трассировки событий для Windows
Профилировщики времени
Дискретный профилировщик Visual Studio
Инструментированный профилировщик Visual
Studio
Дополнительные приемы использования
профилировщиков
времени
Профилировщики выделения памяти
Профилировщик выделения памяти Visual Studio
CLR Profiler
Профилировщики памяти
Другие профилировщики
Профилировщики доступа к данным и базам
данных
Профилировщики конкуренции
Профилировщики ввода/вывода
Микрохронометраж
Пример неправильного микрохронометража
Рекомендации по проведению хронометража
В заключение
ГЛАВА 3.
Внутреннее устройство типов
Пример
Семантические отличия между ссылочными типами
и типами значений
Хранение, размещение и удаление
Внутреннее устройство ссылочных типов
Таблица методов
Вызов методов экземпляров ссылочных типов
Блоки синхронизации и ключевое слово lock
Внутреннее устройство типов значений
Ограничения типов значений
Виртуальные методы типов значений
Упаковка
Предотвращение упаковки типов значений с
помощью
метода Equals
Метод GetHashCode
Эффективные приемы использования типов
значений
В заключение
ГЛАВА 4.
Сборка мусора
Назначение сборщика мусора
Управление свободным списком
Сборка мусора на основе подсчета ссылок
Сборка мусора на основе трассировки
Фаза маркировки
Фазы чистки и сжатия
Закрепление
Разновидности сборщиков мусора
Приостановка потоков для сборки мусора
Сборщик мусора для сервера
Выбор разновидности сборщика мусора
Поколения
Предположения в основе модели поколений
Реализация поколений в .NET
Куча больших объектов
Ссылки между поколениями
Фоновый сборщик мусора
Сегменты сборщика мусора и виртуальная память
Финализация
Детерминированная финализация вручную
Автоматическая недетерминированная
финализация
Ловушки недетерминированной финализации
Шаблон реализации метода Dispose
Слабые ссылки
Взаимодействие со сборщиком мусора
Класс System.GC
Взаимодействие с применением интерфейсов
размещения CLR
Триггеры сборщика мусора
Эффективные приемы повышения
производительности
сборки мусора
Модель поколений
Закрепление
Финализация
Разные советы и рекомендации
В заключение
ГЛАВА 5.
Коллекции и обобщенные типы
Обобщенные типы
Обобщенные типы в .NET
Ограничения обобщенных типов
Реализация обобщенных типов в CLR
Коллекции
Параллельные коллекции
Проблемы, связанные с кешем
Собственные коллекции
Система непересекающихся множеств
Список с пропусками
Одноразовые коллекции
В заключение
ГЛАВА 6.
Конкуренция и параллелизм
Перспективы и преимущества
Зачем использовать приемы параллельного
программирования?
От потоков к пулам потоков и задачам
Параллелизм задач
Параллелизм данных
Асинхронные методы в C# 5
Дополнительные шаблоны в TPL
Синхронизация
Код без блокировок
Механизмы синхронизации Windows
Вопросы оптимального использования кеша
Использование GPU для вычислений
Введение в C++ AMP
Умножение матриц
Моделирование движения частиц
Мозаики и разделяемая память
В заключение
ГЛАВА 7.
Сети, ввод/вывод и сериализация
Общие понятия
Синхронный и асинхронный ввод/вывод
Порты завершения ввода/вывода
Пул потоков в .NET
Копирование памяти
Чтение вразброс и запись со слиянием
Файловый ввод/вывод
Управление кешированием
Небуферизованный ввод/вывод
Сети
Сетевые протоколы
Сетевые сокеты
Сериализация и десериализация данных
Тестирование производительности средств
сериализации
Сериализация объектов DataSet
Windows Communication Foundation
Пороговые значения
Модель обработки
Кеширование
Асинхронные клиенты и серверы WCF
Привязки
В заключение
ГЛАВА 8.
Небезопасный код и взаимодействие с ним
Небезопасный код
Закрепление объектов в памяти и дескрипторы
сборщика
мусора
Управление жизненным циклом
Выделение неуправляемой памяти
Использование пулов памяти
P/Invoke
PInvoke.net и P/Invoke Interop Assistant
Привязка
Заглушки маршалера
Двоично совместимые типы
Направление маршалинга, ссылочные типы и типы
значений
Code Access Security
Взаимодействие с COM-объектами
Управление жизненным циклом
Маршалинг через границы подразделений
Импортирование библиотек типов и Code Access
Security
NoPIA
Исключения
Расширения языка C++/CLI
Вспомогательная библиотека marshal_as
Код на языке IL и неуправляемый код
Взаимодействие со средой выполнения WinRT в
Windows 8
Эффективные приемы взаимодействий
В заключение
ГЛАВА 9.
Оптимизация алгоритмов
Систематизация сложности
Большое О
Машины Тьюринга и классы сложности
Мемоизация и динамическое программирование
Расстояние Левенштейна
Кратчайший путь между всеми парами вершин
Аппроксимация
Задача коммивояжера
Задача о максимальном разрезе
Вероятностные алгоритмы
Вероятностное решение задачи о максимальном
разрезе
Тест простоты Ферма
Индексирование и сжатие
Кодировка переменной длины
Сжатие индексов
В заключение
ГЛАВА 10.
Шаблоны оптимизации производительности
Оптимизации JIT-компилятора
Стандартные оптимизации
Встраивание методов
Отключение проверки границ
Хвостовые вызовы
Производительность на этапе запуска
Предварительная JIT-компиляция с помощью
NGen (Native Image Generator)
Фоновая JIT-компиляция в многопроцессорных
системах
Упаковщики образов
Управляемая оптимизация на основе
профилирования
Различные советы по оптимизации времени
запуска
Аппаратно-зависимые оптимизации
Единственный поток команд и множество потоков
данных
Распараллеливание инструкций
Исключения
Механизм рефлексии
Генерация кода
Генерация из исходного кода
Генерация кода с использованием легковесного
генератора кода
В заключение
ГЛАВА 11.
Производительность веб-приложений
Измерение производительности веб-приложений
Тестирование производительности и нагрузочное
тестирование веб-приложений в среде Visual Studio
Инструменты мониторинга HTTP
Инструменты анализа веб-взаимодействий
Увеличение производительности веб-сервера
Кеширование часто используемых объектов
Использование асинхронных страниц, модулей
и контроллеров
Настройка окружения ASP.NET
Отключение механизмов трассировки и отладки в
ASP.NET
Отключение механизма ViewState
Кеш вывода на стороне сервера
Предварительная компиляция приложений
ASP.NET
Тонкая настройка модели процесса в ASP.NET
Настройка IIS
Кеширование вывода
Настройка пула приложения
Оптимизация сети
Включение HTTP-заголовков кеширования
Включение сжатия в IIS
Минификация и объединение
Использование сетей доставки содержимого (CDN)
Масштабирование приложений ASP.NET
Горизонтальное масштабирование
Механизмы масштабирования в ASP.NET
Ловушки горизонтального масштабирования
В заключение
Предметный указатель
Об авторе
Отзывы
Например, Саша Гольдштейн сильно удивился, когда узнал, что в русском переводе его книги сказано, что бенчмаркать нужно с выключенными оптимизациями.
Рекомендую перед ее прочтением полистать Рихтера - будет легче ориентироваться.
Как уже сказали, мягкая обложка дает о себе знать, выручает скотч :)
Лично для меня наибольший интерес представляют первые четыре главы.
В первой и второй главах рассказано о том, как и с помощью каких инструментов можно измерять производительность приложений. Ведь именно с этого должна начинаться любая оптимизация - определить слабые места.
В третьей и чётвёртой главах очень подробно (на мой взгляд, даже подробней чем в Рихтере) описаны внутреннее устройство типов и процесс сборки мусора.
Остальные главы хоть и содержат не мало ценной и интересной информации, но тем не менее формат книги не позволяет подробно раскрыть описанные там темы, каждая из которых вполне достойна отдельной книги.
Ну и последняя глава - о производительности ВЕБ-приложений.
Книга предназначена, в первую очередь, профессиональным программистам - дотнетчикам, но программисты с другой специализацией найдут в ней очень много нужного и полезного.
Недостаток - мягкая обложка и клееный корешок. При интенсивном чтении книга довольно быстро начинает рассыпаться.
Последние поступления в рубрике "Тематика определяется"
Математика. Подготовка к ЕГЭ. Задачи с параметрами.10-11 классы
В предлагаемом пособии представлен обширный материал, посвященный двум заключительным и сложным темам ЕГЭ профильного уровня: задачам с параметрами и числам и их свойствам. На многочисленных примерах с подробными решениями и обоснованиями (как и требуется на экзамене) показаны различные методы и решения задач.... | |
План счетов бухгалтерского учета с последними изменениями
Читателю предлагается самая последняя редакция Плана счетов бухгалтерского учета финансово-хозяйственной деятельности организаций и инструкции по его применению с учетом последних приказов Минфина РФ. План счетов - это важнейший инструмент бухгалтерского учета, настольная книга для каждого практического бухгалтера.... | |
На ферме. Книжка с наклейками
Игры с наклейками - занятие не только интересное, но и полезное. С этой книгой малыш познакомится с различными видами транспорта, потренируется решать простые логические задачки и находить соответствия.... |
Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Голдштейн С., Зурбалев Д., Флатов И., Оптимизация приложений на платформе .Net в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.