Оптимизация программного кода. Способы экономии памяти, сокращение времени исполнения

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

 

Хотя целью оптимизации является получение оптимальной системы, истинно оптимальная система в процессе оптимизации достигается далеко не всегда. Оптимизированная система обычно является оптимальной только для одной задачи или группы пользователей: где-то может быть важнее уменьшение времени, требуемого программе для выполнения работы, даже ценой потребления большего объёма памяти; в приложениях, где важнее память, могут выбираться более медленные алгоритмы с меньшими запросами к памяти.

    Более того, зачастую не существует универсального решения, которое работает хорошо во всех случаях, поэтому инженеры используют компромиссные (англ. tradeoff) решения для оптимизации только ключевых параметров. К тому же, усилия, требуемые для достижения полностью оптимальной программы, которую невозможно дальше улучшить, практически всегда превышают выгоду, которая может быть от этого получена, поэтому, как правило, процесс оптимизации завершается до того, как достигается полная оптимальность. К счастью, в большинстве случаев даже при этом достигаются заметные улучшения.

 

Способы экономии памяти.

Следует обращать особое внимание на выделение памяти под данные структурных типов (массивов, записей, объектов и т.п.).

При ограничениях на использование памяти следует выбирать алгоритмы обработки, не требующие дублирования исходных данных структурных типов в процессе обработки. (пример: алгоритмы сортировки массивов (сортировка методом «пузырька»)).

Если в программе необходимы большие массивы, используемые ограниченное время, то их можно размещать в динамической памяти и удалять при завершении обработки.

Следует помнить, что при передаче структурных данных в программу «по значению» копии этих данных размещаются в стеке. Избежать копирования удается, если передавать данные «по ссылке», но как неизменяемые (описанные const). Тогда размещается в стеке

только адрес данных.

Способы уменьшения времени выполнения.

При написании циклических участков программы необходимо:

· выносить вычисление константных, т.е. не зависящих от параметров цикла, выражений из циклов;

· избегать «длинных» операций умножения и деления, заменяя их сложением, вычитанием и сдвигами;

· минимизировать преобразования типов в выражениях;

· оптимизировать запись условных выражений – исключать лишние проверки;

· исключать многократные обращения к элементам массивов по индексам (особенно многомерных, так как при вычислении адреса элемента используются операции умножения на значение индексов) – первый раз прочитав из памяти элемент массива, следует запомнить его в скалярной переменной и использовать в нужных местах;

· избегать использование различных типов в выражении и т.п.


 


Химические и биологические негативные факторы, их воздействие на человека и меры защиты от них.

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

 

Химические вещества в зависимости от их практического использования классифицируются на:

· промышленные яды — используемые в производстве органические растворители (например, дихлорэтан), топливо (например, пропан, бутан), красители (например, анилин) и др.;

· ядохимикаты — используемые в сельском хозяйстве пестициды и др.;

· лекарственные средства;

· бытовые химикаты — применяемые в виде пищевых добавок (например, уксус), средства санитарии, личной гигиены, косметики и т. д.;

· биологические растительные и животные яды, которые содержатся в растениях, грибах, у животных и насекомых;

· отравляющие вещества (ОВ) — зарин, иприт, фосген и др.

 

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

 

По характеру воздействия на человека вредные вещества подразделяются на:

· общетоксические — вызывающие отравление всего организма или поражающие отдельные системы: центральную нервную систему, кроветворные органы, печень, почки (углеводороды, спирты, анилин, сероводород, синильную кислота и ее соли, соли ртути, хлорированные углеводороды, оксид углерода и др.);

· раздражающие — вызывающие раздражение слизистых оболочек, дыхательных путей, глаз, легких, кожи (органические азотокрасители, диметиламинобензол и другие антибиотики и др.);

· сенсибилизирующие — действующие как аллергены (формальдегид, растворители, лаки и др.);

· мутагенные — приводящие к нарушению генетического кода, изменению наследственной информации (свинец, марганец, радиоактивные изотопы и др.); канцерогенные — вызывающие злокачественные опухоли (хром, никель, асбест, бенз(а)пирен, ароматические амины и пр.);

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

 

Защита человека от негативных химических факторов.

1. Защита от загрязнения воздушной среды

1.1. Вентиляция

1.1.1. Механическая

1.1.1.1. Общеобменная

1.1.1.2. Местная

1.1.2. Естественная

1.2. Средства очистки воздуха от вредных веществ

1.2.1. Пылеуловители

1.2.2. Газоуловители

2. Защита от загрязнения водной среды

2.1. Методы и средства очистки воды

2.1.1. Процеживание

2.1.2. Отстаивание

2.1.3. Песколовки

2.1.4. Отстойники

2.1.5. Фильтрование

2.1.6. Электрофлотация

2.1.7. Коагуляция

2.1.8. Биологическая очистка

2.2. Обеспечение качества питьевой воды

2.2.1. Обеззараживание воды

2.2.1.1. Хлорирование

2.2.1.2. Озонирование

2.2.1.3. Очистка ультрафиолетовым способом

2.2.2. Сорбционная очистка питьевой воды

2.2.3. Опреснение и обессоливание воды

3. Средства индивидуальной защиты

3.1. Фильтрующие

3.2. Изолирующие


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: