Программирование >>  Создание клиентов mysql 

1 ... 147 148 149 [ 150 ] 151 152 153 ... 201


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

Во вторую очередь стоит подумать об обновлении программного обеспечения. Основной программный компонент- это операционная система. Известно, что Linux и BSD UNIX позволяют повысить производительность стартх компьютеров, превосходя в этом отношении коммерческие операционные системы, такие как Windows, особенно если бессбойная работа сервера очень важна.

Обновляется и сама программа MySQL. Когда появится версия 4, ее производительность будет повышена в сравнении с третьей версией. Но и в третью версию регулярно вносят мелкие исправления, так что желательно идти в ногу со временем.

Основная причина оптимизации - желание сэкономить деньги (оставим в стороне личное удовлетворение и другие причины). Не забывайте об этом в своих попытках повысить производительность программы. Нет смысла затрачивать на оптимизацию больше денег, чем она способна принести. Стоит потрудиться над такой программой, с которой работает множество людей, особенно если это коммерческое приложение. Что касается программ с открытыми кодами, то важность оптимизации здесь трудно определить. Лично я рассматриваю работу над такими проектами как хобби.

Чтобы процесс оптимизации был максимально эффективным, сосредоточьте усилия на самой медленной части программы, улучшение которой обеспечит наибольшую отдачу. Обычно пытаются найти более быстрые альтернативы применяемым алгоритмам. В вычислительной технике относительная эффективность алгоритма записывается в нотации большого О . Например, запись 0(п) означает, что время выполнения алгоритма пропорционально числу обрабатываемых элементов п. Алгоритм тип 0{ ) является очень медленным. Проанализируйте используемые в программе алгоритмы и подумайте, что можно сделать для их улучшения.

Тесты производительности

Прежде чем приступать к оптимизации, нужно вооружиться средствами измерения производительности. Предусмотрительные разработчики MySQL написали группу Perl-сценариев, предназначенных для тестирования производительности MySQL и других СУБД. Эти сценарии расположены в каталоге sql-bench исходного дистрибутива. В подкаталоге Results находятся результаты множества тестов существующих систем, которые можно сравнить с собственными оценками.

В сценариях используется демонстрационная базаданных, в которой выполняется восемь различных тестов. Эта база данных называется test и инсталлируется вместе с MySQL. Сценарий run-all-tests запускает все тесты последовательно. При наличии опции -log результаты работы сценария будут сохранены в каталоге output для последующего просмотра. Ниже приведена команда, запускающая тесты из каталога sql-bench.

# ./rUn-all-tests -user=leon -password=secret -log

Для работы этого сценария необходимо наличие в системе интерпретатора Perl и модуля DBI.



Тесты производительности 465

Для экспериментов я использую старый компьютер Pentium с частотой 100 МГц, работающий под управлением RedHat Linux. Несмотря на слабую вычислительную мощность, программа MySQL демонстрирует нанем вполне приемлемую производительность. Кроме того, ограниченные возможности системы позволяют быстро выявлять неэффективные программные решения. Результаты тестов, полученные на этом компьютере, показаны в листинге 26.1. Несложно убедиться, что моя система работает примерно в 10 раз медленнее, чем самая медленная из систем, результаты тестов которгх имеются в каталоге Results. Если бы такую производительность продемонстрировал рабочий сервер, нужно было бы немедленно обновить его аппаратную часть.

The result logs which were found and the options: 1 mysql-Linux 2.2.16 22 i586 : MySQL 3.23.39


The results per operation:







1 ... 147 148 149 [ 150 ] 151 152 153 ... 201

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика