forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Большой объем данных (http://forum.boolean.name/showthread.php?t=16107)

FireOwl 27.12.2011 06:23

Большой объем данных
 
Что гуманнее по отношению к компьютеру - загрузить большой объем данных в память или постоянно обращаться к файлу на диске?

Knightmare 27.12.2011 08:46

Ответ: Большой объем данных
 
Большой объем данных - это ____ Мб.

YellowAfterlife 27.12.2011 09:27

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

ViNT 27.12.2011 12:06

Ответ: Большой объем данных
 
Самое гуманное - работать с буфером, размер которого не слишком большой для ОЗУ, но позволяет загружать объем данных, значительно превышающий размер одномоментно обрабатываемых данных. То есть, если нужно обрабатывать файл побайтно, а сам файл весит пару-тройку сотен МБ, берем буфер размером в пару МБ и работаем уже с ним, периодически загружая данные (как только ранее загруженные будут обработаны). В результате - и память не сильно загажена, и обращений к диску меньше.

impersonalis 29.12.2011 00:10

Ответ: Большой объем данных
 
Цитата:

Сообщение от ViNT (Сообщение 215389)
Самое гуманное - работать с буфером, размер которого не слишком большой для ОЗУ, но позволяет загружать объем данных, значительно превышающий размер одномоментно обрабатываемых данных. То есть, если нужно обрабатывать файл побайтно, а сам файл весит пару-тройку сотен МБ, берем буфер размером в пару МБ и работаем уже с ним, периодически загружая данные (как только ранее загруженные будут обработаны). В результате - и память не сильно загажена, и обращений к диску меньше.

Пожалуй, ещё стоит уточнить (на всякий случай), что "побайтно" здесь значит "последовательно байт за байтом", а не "один байт за раз"(размещённый при этом в произвольной части файла).


Часовой пояс GMT +4, время: 23:27.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot