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

Допустим, необходимо каким-либо образом обработать несколько гигабайт информации. Задача усложняется тем, что мы не знаем точный объем, но известно, что он слишком большой. Для решения задачи можно создать буфер размером 255 байтов или символов (зависит от типа обрабатываемых данных), в цикле заносить в него данные и производить нужные действия А теперь посчитайте, сколько раз нужно будет последовательно помещать данные в буфер, чтобы просмотреть все? Несложные расчеты говорят о 3 921 569 чтениях из буфера. Это очень много, и процессор выполняет массу бесполезных действий

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

Самым слабым звеном в компьютере является жесткий диск, потому что это единственный компонент, который построен на механике. Электроника (например, оперативная память) работает быстрее механики, и вы должны максимально использовать это.

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

2.17. Необходимая достаточность || Оглавление || 2.19. KOL and MCK


Delphi в шутку и всерьез: что умеют хакеры



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31