Главная » Просмотр файлов » К. Касперски - Техника оптимизации программ, Эффективное использование памяти

К. Касперски - Техника оптимизации программ, Эффективное использование памяти (1127752), страница 13

Файл №1127752 К. Касперски - Техника оптимизации программ, Эффективное использование памяти (К. Касперски - Техника оптимизации программ, Эффективное использование памяти) 13 страницаК. Касперски - Техника оптимизации программ, Эффективное использование памяти (1127752) страница 132019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

Сложнее найти компромисс, наилучшим образом "вписываюшийся" во все платформы. Вернее, не "сложнее", а вообше иевоаможио. Глава Г Краткий обзор современных профилировщиков Существует не так уж и много профилировщиков, поэтому особой проблемы выбора у программистов и нет.

Если оптимизация — не ваш основной "хлеб", и эффективность для вас не критична, то вам подойдет практически любой профилировщик, например тот, что уже включен в ваш компилятор. Более сложные профилировщики для вас окажутся лишь обузой, и вы все равно не разглядите заложенный в них потенциал, поскольку это требует глубоких знаний архитектуры процессора и всего компьютера в целом. Если же вы всерьез озабочены производительностью и качеством оптимизации ваших программ и планируете посвятить профилировке значительное время, то кроме !пге! ЧТцпе и АМО Соде Апа!уа вам ничто не поможет. Обратите внимание: не "1пге! ЧТцпе или АМ() Соде Апа!уз!", а именно "!ше! Чтцпе и АМР Соде Апа!узг".

Оба этих профилировщика поддерживают процессоры исключительно "своих" фирм и потому использование лишь одного из них — не позволит оптимизировать программу более чем наполовину. Тем не менее, далеко не все читатели знакомы с этими продуктами и потому автор не может удержаться от соблазна, чтобы хотя бы кратко не описать их основные возможности. ЫЕ! ЧТЦПЕ Бесспорно, что ЧТцпе — это самый мощный из когда-либо сугцествовавших профилировщиков, во всяком случае, на 1ВМ РС (рис.

!.3). Собственно, его и профилировщиком язык то называть не поворачивается. ЧТцпе — это высокоинтеллектуальный инструмент, не только выявляющий "горячие" точки, но еше и дающий вполне конкретные советы по их устранению. В дополнение к этому, ЧТцпе содержит весьма не хилый оптимизатор кода, увеличивающий скорость программ, откомпилированных М!сгозой Ч!вца! С++ б.б„в среднем на 20%, — согласитесь, такая прибавка производительности никогда не бывает лишней! В общем, у профилировщика Чтиве столько достоинств, что писать о них становится даже как-то и не интересно. Просто воспринимайте его как безальтернативный профилировщик и все! А в настоящем обзоре мы лучше поговорим о его недостатках (ну, какая же программа обходится без недостатков?). Основной недостаток Чтиве — его чрезмерная "тяжелость" (дистрибутив шестой версии — последней на момент написания этих строк — "весит" аж !50 Мбайт) и весьма впечатляющая стоимость, помноженная на тот факт, что, даже имея деньги, ЧТцпе не так-то просто приобрести в России.

Прав- Профилировка программ да, !иге! предлагает бесплатную полнофункциональную версию, которая ни чем не уступает коммерческой, но работает всего лишь 30 дней. Скачивать такую "тяжесть" рапи какого-то месяца работы? Извините, но зто несерьезно! (Особенно, если у вас б!а)-цр). Рис. 1.3. Логотип профилировщика Липе Другой минус — УТцпе не очень стабилен в работе и частенько "вешает" систему (например, у меня при попытке активизации некоторых счетчиков производительности он загоняет операционную систему в синий экран смерти с надписью "твоа кэт ьяяя ов ясохь" и хорошо, если при этом еше не "грохает" активный рабочий стол!). Впрочем, если не лезть "куда не надо" и вообще перед выполнением каждого действия думать головой, то ужиться с Л'цпе все-таки можно (а что делать — ведь достойной альтернативы все равно нет).

Еще 7Тцпе получает много нареканий за свою ужасающую сложность. Кажется, что вообще невозможно освоить его и досконально во всем разобраться. Один встроенный "хелп", занимающий свыше трех тысяч страниц формата А4 чего стоит! Попробуйте его прочесть (только прочесть) — даже если вы хорошо владеете английским, то это у вас отнимет, по меньшей мере, целый месяц! Но давайте рассмотрим проблему под другим углом. Вам нужен инструмент или бирюлька? Чем мощнее и гибче инструмент — тем он сложнее по определению.

С моей точки зрения, тгТцпе ничуть не сложнее чем тот же т(яца) С++ или 1)е)рЫ, и проблема заключается не в самой сложности, а в отсутствии литературы по профилировке вообще и данному 50 Глава Г продукту в частности. Поэтому в данную книгу включен короткий самоучитель по ЪТцпе, который вы найдете в разд. "Практический сеанс прот)тилировки с гТипе" этной главы, — надеюсь, это вам поможет. АМ0 Соде Апа!уа$ Профилировщик АМР Сот)е Апа1ум (рис. 1.4) на два порядка уступает своему прямому конкуренту тгТцпе, и я бы ни за что не порекомендовал использовать его в качестве вашего основного профилировщика.

Рис. 1.4. Логотип профилировщика АМ0 Соое Апа!увт Опасаясь быть побитым агрессивными поклонниками АМР, я все же позволю перечислить основные недостатки профилировщика Соде Апа1ум. С) Во-первых, Сойе Апа!уы требует обязательно наличия отладочной информации в профилируемой программе. Программу без отладочной информации он просто откажется загружать! Компиляторы же, в подавляющем своем большинстве, никогда не помещают отладочную информацию в оптимизированные программы, Это объясняется тем, что оптимизация, внося значительные изменения в исходный код, уничтожает прямое соответствие между номерами строк программы и сгенерированными машинными инструкциями. Фактически оптимизированная и неоптимизированная программа — это две разные программы, имеющие различные, пусть и пересекающиеся, подмножества "горячих" точек.

Профилировка неоптимизированного варианта программы принципиально не позволяет найти и устранить все узкие места настоящего приложения. (При отключенной оптимизации узкие места могут быть найдены там, где их и нет.) Л Во-вторых, разрешающая способность диаграмм профилировщика Соде Апа1угд ограничивается строками исходного текста программы, но, увы, не машинными командами (как у тгТцпе). И хотя в принципе Соде Апа!ум позволяет определять время выполнения каждой инструк- Лрофилировка программ ции, он не предоставляет никаких механизмов выделения "горячих" точек на этом уровне.

Всю работу по выявлению "тяжеловесных" машинных команд приходится выполнять самостоятельно, "вручную" просматривая столбик цифр колонки СР! (Сус!е рег 1пгдгпсг(оп — Циклов на Инструкцию). Надо ли говорить, что даже в относительно небольшом участке программы количество машинных команд может достигать нескольких тысяч, и подобный "кустарный" анализ их "температур" может растянуться черт знает на сколько времени.

0 В-третьих, Соде Апа1уы не дает никаких советов по ликвидации выявленных узких мест программы, что не очень-то обрадует программистов- новичков (а таковых, как показывает практика, большинство, и лишь очень немногие из нас поднаторели в оптимизации). П В-четвертых, профилировщик Соде Апа!ум просто неудобен в работе. Неразвитая система контекстных меню, крайне неконфигурабельный и вообще аскетичный интерфейс, отсутствие возможности сохранения "хронологии" профилировки — все это придает ему черты незаконченной утилиты, написанной на скорую руку. Тем не менее, Сог(е Апа!уа весьма компактен (его последняя на данный момент версия 1.!.О занимает всего 16 Мбайт, что на порядок меньше 1ГТипе), стабилен и устойчив в работе и главное — он содержит полноценный эмулятор процессоров Кб-П, Ай!оп (с внешним и интегрированным кэшем), 1)цгоп, включая и их мобильные реализации.

Причем, есть возможность вручную выбирать частоту шины и ядра. Это полезно хотя бы для оценки влияния частоты шины на производительность, что особенно актуально для приложений, интенсивно работающих с основной оперативной памятью (жалко, но УТцпе лишен этой "вкусности"). Наконец, Сос)е Апа!ум содержит толковую справку, сжато и внятно описывающую узкие места процессора. И вЂ” самое приятное — он, в отличие от ЪТппе, абсолютно бесплатен (во всяком случае, пока)! В конечном счете, независимо от степени своих симпатий (антипатий) к этому профилировщику, правила хорошего тона программирования обязывают использовать его для оптимизации ваших приложений под процессор Аг)з!оп, который занимает весьма существенную долю рынка, и этим фактом нельзя пренебрегать! Вй(СГОВОП РГОЛ! Е.ЕХЕ Профилировщик М!сгозой ргой!е.ехе настолько прост и незатейлив, что даже не имеет собственного имени и нам на протяжении всей книги придется называть его по имени исполняемого файла (рис, 1.5).

Ргой!е.ехе — чрезвычайно простой и минимально функциональный профилировщик, попадаюгций в этот обзор лишь потому, что он входит в штат- 52 Глава 1 ную поставку компилятора М!сгозой Ч!впа1 С++ (редакции — Ргогезз!опа! и Епгегрг!зе), а потому достается большинству из нас практически даром, в то время как остальные профилировщики приходится где-то искать, скачивать или покупать. Рис. 1.5. "Визитная карточка" профилировщика М~стовои ртов!е.ехе Пишем собственный профилировщик Какой смыл разрабатывать свой собственный профилировщик, если практически с каждым компилятором уже поставляется готовый? А если возможностей штатного профилировщика окажется недостаточно, то — пожалуйста — к вашим услугам АМВ Сот(е Апа!уз! и !иге! ЧТппе.

К сожалению, штатный профилировщик М!сгозой Ч!зпа! Яцг(!о (как и многие другие подобные ему профилировщики) использует для измерений времени системный таймер, "чувствительности" которого явно не хватает для большинства наших целей. Профилировщик !пге1 ЧТцпе слишком "тяжел" и, кроме того, не бесплатен, а АМО Сот(е Апа(ухг не слишком удобен в работе и нет никаких гарантий, что завтра за него не придется платить. Все это препятствует использованию перечисленных выше профилировщиков в качестве основных инструментов данной книги.

Предлагаемый автором ОоСРБ С!ос!к, собственно, и профилировщиком язык назвать не поворачивается. Он не ищет "горячие" точки, не подсчитывает количество вызовов, более того, вообще не умеет работать с исполняемыми файлами. Г)оСР13 С!ос!г представляет собой более чем скромный набор мак- Профилировка программ 53 росов, предназначенных для непосредственного включения в исходный текст программы и определяющих время выполнения профилируемых фрагментов.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6508
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее