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

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

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

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

Вся информация уникальна, а многая даже засекречена. Поэтому книга будет читаться как самый настоящий детектив про разведчиков. Предполагаемый срок выхода: на настоящий момент пока не известен. Краткая история создания данной книги Настоящая книга задумывалась отнюдь не ради коммерческого успеха (который вообще сомнителен — ну много ли людей сегодня занимаются оптимизацией?), а писалась исключительно ради собственного удовольствия (как говорится: 02!ЕЕ Р(2ЕС! М25СЕЯЕ (лат.) — соединять приятное с полезными). История ее создания вкратце такова: после сдачи моих первых шести книг, обеспечивших мне более или менее сносное существование, у меня появилась возможность неторопливо, без лишней спешки заняться теми исследованиями, которые меня уже давно волновали.

Вплотную столкнувшись с необходимостью оптимизации еше во времена древних и ныне скоропостижно почивших 8-рязрядных машин, я скорее по привычке, чем по насущной необходимости, сохранил преданность эффективному коду до настоящих дней. А потому, не без оснований считал, что "собаку съел" на оптимизации и искренне надеялся, что писать на эту тему Предисловие мне будет очень легко. Вот только бы выяснить несколько "темных" мест и объяснить некоторые странности поведения процессора, до анализа которых раньше просто не доходили руки... Но уже к концу первого месяца своих изысканий я понял, что если и "съел собаку", то конечно "древнюю как мамонт", ибо за последние несколько лет техника оптимизации кардинально поменялась, а сами процессоры так усложнились, что особенности их поведения, судя по всему, перестали понимать и сами отцы-разработчики.

В общем, вместо трех изначально запланированных на книгу месяцев, работа над ней растянулась более чем на год, причем за это время не было выполнено и десятой части запланированного проекта. Поверьте! Я вовсе не мячик гонял, а каждый день проводил за компьютером как минимум по 12 — 15 часов, благодаря чему ббльшая часть прежде темных мест "вышла" из мрака на свет божий и теперь ярко освещена! Быть может, это и не очень производительный труд (и вообще крайне низкий выход в пересчете на символ в час), тем не менее, проделанной рабой в целом я остался доволен. И не удивительно! Изучать "железки" — зто до жути интересно. Перед вами — черный ящик, и все что вы можете, так это планировать и осуществлять различные эксперименты, пытаясь описать их результаты некоторой математической моделью, проверяя и уточняя ее последующими экспериментами.

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

Рисунки на диске разделены по главам и находятся в каталоге р1с. Там же на диске читатель найдет все необходимые программы н полные исходные коды большинства листингов, помещенных в книге. Соглашения об условных обозначениях и наименованиях расшифровку всех непонятных терминов, если таковые встретятся вам по ходу чтения книги, можно узнать в глоссарии. Но поскольку в глоссарий по обыкновению все равно практически никто не заглядывает, ниже перечис- Г7редисловив лены обозначения, которые с наибольшей степенью вероятности могут вызвать затруднение. !3 Под Рб-процессорами понимаются все процессоры с ядром Рб, построенные по архитектуре Репбшп Рго. К ним принадлежат: сам Реп!!пш Рго, Репгшт-П и Репйшп-!П, а так же процессоры семейства Се!егоп.

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

В конце концов, хозяин — барин. г3 Под "+" в обозначении процессоров, по общепринятому соглашению, понимаются означенная и последуюшие модели процессоров. Например, "Р-1П+" обозначает "Репгшт-П! и Реп!!ит-4". С) Под "МБ УС' или даже просто "УС' подразумевается М!сгозой азов! С++ 6.0, а под "ВС' — Вот!апд С++ 5.5. Соответственно, "%РР" обозначает "%АТСОМ С-~-+ 10.0". П Кабалистическое выражение наподобие "Р-111 733/133/100/1815ЕР" расшифровывается так: "процессор 1пге! Репбцгп-П1 с тактовой частотой 773 МГц, частотой системной шины 133 МГц и частотой памяти 100 МГц, установленный в материнскую плату, базируюшуюся на чипсете 1пге! 815 ЕР".

Соответственно, по аналогии, "АМ!3 Аг!т!оп 1050/100/100/Ч1А КТ 133" обозначает: "процессор АМР Агп!оп с тактовой частотой 1050 МГц, частотой системной шины !00 МГц и частотой работы памяти ГОО МГц, уставленный в материнскую плату, базируюшуюся на чипсете Ч1А КТ !33". С) Да, чуть не забыл сказать. "Сверхоперативная память" — это русский эквивалент американского термина "сас!зе гпепюгу". Здесь он будет использоваться вовсе не из-за самостийной гордости, а просто для того, чтобы избежать излишней тавтологии (частого повторения одних и тех же слов). Введение Рго е$ созга' целесообразности оптимизации Это в наше-то время говорить об оптимизации программ? Бросьте! Не лучше ли сосредоточиться на изучении классов МГС или технологии .)ч)ЕТ? Современные компьютеры так мошны, что даже %)пдоч»з ХР оказывается бессильна затормозить их! Нынешние программисты к оптимизации относятся более чем скептически.

Позволю себе привести несколько типичных высказываний: П "...я применяю относительно медленный и жадный до памяти язык Рег1, поскольку на нем я фантастически продуктивен. В наше время быстрых процессоров и огромной памяти эффективность — другой зверь. Болыиую часть времени я ограничен вводом/выводом и не могу читать данные с диска ьли из сети так быопро, чтобы нагрузить процессор. Раньше, когда контекст был другим, я писал очень быстрые и маленькие программы на С.

Это было важно. Теперь же важнее быстро писать, поскольку оптимизация может привести к столь малому росту быстродействия, что он просто не заметен", — говорит КоЬегг %Иге; !:! "...а стоит ли тратить усилия на оптимизацию и чего этим можно достичь? Дело в том, что чем сильнее вы будете адаптировать вашу программу к заданной архитектуре, тем, с одной стороны, вы достигнете лучших результатов, а, с другой стороны, ваша программа не будет хорошо работать на других платформах. Более того, «глубокая» оптимизация может потребовать значительных усилий. Все это требует от пользователя точного понимания чего он хочет добиться и какой ценой", — пишет в своей книге "Оптимизация программ под архитектуру СОХАХ С" М. П.

Крутиков; гз "Честно говоря, я сам большой любитель «вылиэывания» кода с целью минимизации используемой памяти и повышения быстродействия программ. Наверное, это рудименты времен работы на ЭВМ с оперативной палгятью в 32 Кбайт. С тем болыией уверенностью я отношу «эффективность» лишь на четвертое место в критериях качества программ", — признается Алексей Малинин — автор цикла статей по программированию на %ьца! Вагйс в журнале "Компьютер Пресс". ' Рго ег сопгга (латд — за и против.

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

Да что угодно, вплоть до элементарного сжатия данных архиватором а 1а Зцрег %1п Х1р! Да, мощности процессоров растут, но ведь параллельно с этим растут и требования к ним. Если раньше считалось нормальным, поставив программу на выполнение, уйти пить пиво, то сегодняшний пользователь хочет, чтобы все операции выполнялись мгновенно, ну если и не мгновенно, то с задержкой, не превышающей нескольких минут. Не стоят на месте и объемы обрабатываемых данных. Признайтесь, доводилось ли вам находить на своем диске файл размером в сотню-другую мегабайт? А ведь буквально вчера емкость целого жесткого диска была на порядок меньше! Цель — определяет средства.

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

и тестирования) приложения более чем на 10% †1, а в идеале, все критические алгоритмы желательно реализовать в виде отдельной библиотеки, использование которой не увеличивает трудоемкости разработки вообще; (з оптимизирующий алгоритм должен давать выигрыш не менее чем на 20%— 25% в скорости выполнения. Приемы оптимизации, дающие выигрыш менее 20%, в настоящей книге не рассматриваются вообще, т. к. в данном случае "овчинка выделки не стоит".

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

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

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