Oбзор оптимизации
Чтобы увеличить скорость системы, необходимо, разумеется, прежде всего
разбираться в ее конструкции. Кроме того, нужно знать, какие функции будет
выполнять система и какие "узкие места" в ней имеются.
Ниже приведен список наиболее часто встречающихся "узких мест":
- Поиск данных на диске. Чтобы найти на диске какой-то фрагмент данных,
требуется некоторое время. Для устройств выпуска 1999 года среднее
время поиска составляет менее 10мс, так что теоретически можно
выполнять приблизительно 100 операций поиска в секунду. Это время
можно ненамного уменьшить, заменив диски более новыми. Для одной
таблицы поиск на диске оптимизировать очень сложно. Такую оптимизацию
можно выполнить путем распределения данных по нескольким дискам.
- Дисковое чтение/запись. После выполнения поиска, когда найдена
соответствующая позиция на диске, мы можем считать данные. Для
устройств выпуска 1999 года производительность одного диска составляет
около 10-20Мб/с. Дисковое чтение/запись легче оптимизировать, чем
дисковый поиск, поэтому читать можно параллельно с нескольких дисков.
- Циклы процессора. Когда мы помещаем данные в основную память (или если
они уже находятся там), мы должны обработать их, чтобы получить
результат. Наличие маленьких по сравнению с объемом ОЗУ таблиц -
наиболее часто встречающийся лимитирующий фактор. Но в этом случае, в
общем-то, скорость обработки маленьких таблиц значения не имеет.
- Пропускная способность ОЗУ (memory bandwidth). Когда процессору
требуется больше данных, чем может вместить его кэш, узким местом
становится пропускная способность памяти. В большинстве систем это
узкое место встречается редко, однако о нем нужно знать.
Содержание раздела