|
Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения |
27.12.2011, 06:23
|
#1
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Большой объем данных
Что гуманнее по отношению к компьютеру - загрузить большой объем данных в память или постоянно обращаться к файлу на диске?
|
(Offline)
|
|
27.12.2011, 08:46
|
#2
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: Большой объем данных
Большой объем данных - это ____ Мб.
|
(Offline)
|
|
27.12.2011, 09:27
|
#3
|
ПроЭктировщик
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений (для 219 пользователей)
|
Ответ: Большой объем данных
Обычно работа с оперативной памятью проходит быстрее чем работа с диском.
Исключение - превышение объемом данных размера оперативной памяти, в случае чего будет использоваться файл подкачки и разницы особой не будет (или будет работать даже медленнее из-за загрузки-выгрузки частей из ОП).
Окончательное решение должно зависить от отдельной программы (к примеру загружать в ОП файл для того чтобы применить к нему несколько битовых операций и выгрузить было бы странно) и упомянутого объема загружаемой памяти.
__________________
Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.12.2011, 12:06
|
#4
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Большой объем данных
Самое гуманное - работать с буфером, размер которого не слишком большой для ОЗУ, но позволяет загружать объем данных, значительно превышающий размер одномоментно обрабатываемых данных. То есть, если нужно обрабатывать файл побайтно, а сам файл весит пару-тройку сотен МБ, берем буфер размером в пару МБ и работаем уже с ним, периодически загружая данные (как только ранее загруженные будут обработаны). В результате - и память не сильно загажена, и обращений к диску меньше.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо ViNT за это полезное сообщение:
|
|
29.12.2011, 00:10
|
#5
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Большой объем данных
Сообщение от ViNT
Самое гуманное - работать с буфером, размер которого не слишком большой для ОЗУ, но позволяет загружать объем данных, значительно превышающий размер одномоментно обрабатываемых данных. То есть, если нужно обрабатывать файл побайтно, а сам файл весит пару-тройку сотен МБ, берем буфер размером в пару МБ и работаем уже с ним, периодически загружая данные (как только ранее загруженные будут обработаны). В результате - и память не сильно загажена, и обращений к диску меньше.
|
Пожалуй, ещё стоит уточнить (на всякий случай), что "побайтно" здесь значит "последовательно байт за байтом", а не "один байт за раз"(размещённый при этом в произвольной части файла).
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:44.
|