Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Легковесное программное обеспечение

Познавать такое понятие как «легковесное программное обеспечение» будем в сравнении. В сравнении с чем? С обычным, широко распространённым софтом. Заодно попытаемся разобраться в сложившейся ситуации. Эти сведения, смеем надеяться, не помешают ни так называемым простым пользователям, ни тем, кто собирается стать программистом. Так что читайте и делайте выводы.

Что такое Bloatware

Слово «Bloatware» означает «раздутое программное обеспечение». Подобный софт производится следующим образом.

Предположим, разработчики изготовили хороший продукт. К примеру, медиаплеер. Приходит начальство и говорит, мол, пора выпускать новую версию с дополнительной функциональностью. Добавьте-ка автоматический вход в интернет и скачивание обложки альбома, закладку, показывающую рекламу и продающую билеты на концерты.

Будет потреблять втрое больше системных ресурсов? Ничего страшного, люди купят более мощные компьютеры. А кто вякнет, тех наши маркетологи анонимно обзовут на форумах нищими неудачниками, неспособными раскошелиться.

Программисты, конечно, не хотят терять работу, поэтому в сжатые сроки прикручивают к плееру новые плюшки. Наспех, кое-как, лишь бы всё это работало.

Через некоторое время снова приходит начальство и требует добавить более увесистую супермодную графическую оболочку, виртуальную машину для её отображения, автоматическое создание базы данных с библиотекой мультимедиа, с сортировкой всех медиафайлов на диске в фоновом режиме, с публикацией предпочтений пользователя в Facebook, ну и так далее.

И вот медиаплееру для воспроизведения одной песни требуется уже гигабайт оперативной памяти. Хомячки попищат недовольно — и пойдут в магазин за новым «железом», на радость производителям оного. Нельзя же прослыть неудачником, в самом деле.

Следовательно, нормальный, легковесный софт — это программа, не обвешанная излишней функциональностью и потребляющая ровно столько системных ресурсов, сколько ей нужно для выполнения своих непосредственных обязанностей.

Спагетти и кенгуру

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

Однако мало кто из производителей софта желает оптимизировать код. Потребуются дополнительные расходы, да и хорошие специалисты нужны. Выгоднее нанять за гроши студентов-первокурсников.

Кенгуру-код — это когда программа много, очень много раз обращается к своим частям, запускает дополнительные циклы, подключает алгоритмы и вообще скачет по всему коду как австралийское сумчатое. Нет бы выстроить всё в линеечку и возвращаться из конца в начало только в исключительных случаях, когда без этого действительно не обойтись.

Но, опять же, хорошие программисты за копейки работать не станут, а плохих всегда полно. «За тарелку супа» что-то да сотворят, оно хоть как-то заработает — большего и не надо. Реклама убедит хомячков, что продукт престижный, статусный, гламурный — и всё будет в порядке.

Значит, легковесный софт — это программы, написанные разумно и потому не требующие ресурсов для разгребания наспех состряпанной лапши.

Windows и антивирусы

Сама по себе Windows не так уж плоха, не считая провальную Vista. Если вырубить всяческие визуальные эффекты и прочие излишества, то хватит пары гигабайт оперативной памяти и среднестатистического двухъядерного процессора. Однако есть один существенный минус — необходимость наличия антивируса.

Антивирусы разбухают чудовищными темпами. Например, «Avira Antivir» образца середины 2010-го вполне комфортно себя чувствовал на слабеньком дешёвом нетбуке. Прошёл год — и следующий релиз стал потреблять больше ресурсов, чем сама операционная система.

Да, без преувеличений! Хотя функциональность антивируса осталась практически той же самой, но Windows XP кушала двести мегабайт оперативной памяти, а программа «Avira Antivir» — триста.

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

Пользователю Windows периодически доводится тратить свои кровные на новое «железо», иначе останется без защиты, когда завершится недолгая поддержка прежней, более лёгкой версии антивируса.

Пока что не является Bloatware собственный антивирус от Microsoft, который называется «Microsoft Security Essentials». Неплохо смотрится и чешский «Avast!» Эти программы в данный момент можно назвать легковесными. Остальные защитные изделия для Windows — типичные образчики Bloatware.

Продолжение этой статьи: «Легковесное программное обеспечение. Часть 2».

Автор: vanilinkin, специально для xBB.uz, 20.04.2012


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2012-04-23 00:28:03

Метки материала: программное обеспечение, обеспечение, программное, легковесное, по, софт, программы для компьютера, soft, информационные технологии, it, ит, hi tech, software, юзабилити, high tech, виды по, программное обеспечение по


5 комментариев

20.04.2012 20:01:00 #
Mozilla Firefox dima
Стремясь к идеалу выполнения этой операции делают как можно короче код и используют только необходимое кол-во памяти.

В реальных проектах все несколько сложнее.
 
Во-первых, потому что можно написать короткий код с использованием сторонней библиотеки, и он будет тормозить из-за универсальности и навороченности этой библиотеки. А можно реализовать нужную в функциональность в собственном коде. Будучи заточенным под конкретную задачу, он будет выполняться быстрее, но при этом будет гораздо длиннее первого.
 
Во-вторых, иногда быстродействие важнее памяти. Скорость работы увеличивается за счет кэширования и/или индексации обрабатываемых данных. А это требует дополнительного кода.
20.04.2012 19:58:51 #
Mozilla Firefox Гость
Что будет выполняться быстрее? Цикл из 10 итераций или тело цикло скопированное 10 раз подряд.
Так вот второе будет выполняться быстрее, хотя это типичный спагетти код. Мы не говорим о хорошей оптимизации компилятором, а о таком который буквально вместо цикла генерирует переходы.
 
Разумеется этот пример утрированный, никто в здравом уме не станет копирать одно и то же 10 раз, а вот copy&paste одного и того же кода с мелкими измненениями встречается сплошь и рядом.
Потому и придуманы макросы и шаблоны, чтобы и код поддерживать просто и выполнялся быстро.
20.04.2012 19:42:58 #
Mozilla Firefox Гость listbit
"Чем меньше кода для выполнения конкретно одной какой-то операции, тем программа будет быстрее выполняться."
Это хорошо известно, всем кто когда-нибудь участвовал на любой олимпиаде по программированию. Дают задание и одного только выполнения мало, нужно чтобы прога выполнила это задание как можно быстро. Спец. прога вычисляет время выполнения программы до тыс. миллисекунды. Стремясь к идеалу выполнения этой операции делают как можно короче код и используют только необходимое кол-во памяти.
20.04.2012 18:14:17 #
Mozilla Firefox dima
К тормозам часто приводит выполнение излишних или повторных операций, ненужных для решения задачи. Такие ситуации часто возникают в спагетти-коде, и их в этом коде трудно отловить.
 
Например, часто происходит так, что из-за плохого проектирования, на ту или иную функцию в спагетти-коде (он же кенгуру-код) навешивается излишняя универсальность. В итоге она выполняет 100500 телодвижений по каждому поводу и без повода и программа в целом тормозит.
20.04.2012 16:49:08 #
Mozilla Firefox Гость
А почему "спагетти-код" будет тормозить? Глючный да, трудноподдерживаемый да, но насчет тормознутости спорно.
Если код длинный то не значит что он исполняется долго, жищненный опыт показывает что скорее наоборот.

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2019, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.