|
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 4
|
|
Работа с оперативной памятью30.07.2012, 04:47. Показов 6966. Ответов 10
Метки нет (Все метки)
доброго времени суток
пытаюсь написать программу. упёрся в работу с оперативкой. есть файл произвольного размера(от 1ГБ), в нем хранятся цифры, которые нужны в дальнейшей работе. нужно вычитывать их из файла побайтно. используя библиотеку stdio.h. насколько я понимаю, функции вроде fopen() пытаются "вычитать" весь файл в оперативку. не могу найти функции, которые бы позволили вычитывать только часть файла. поскольку со всеми производимыми операциями мне нужно уложиться в 64Мб до этого приходилось сталкиваться только с микроконтроллерной техникой, а там подобное решалось асемблерной вставкой и прямой адресацией к памяти. насколько я понимаю, виндовс этого сделать не даст, поскольку оперативная память распределяется динамически между всеми запущенными приложениями, а файл на винте может быть фрагментирован, и данные будет проблематично вычитать в нужном порядке. хотя возможно мне просто не хватает знаний ![]() подскажите в какую сторону копать в поисках ответов
0
|
|
| 30.07.2012, 04:47 | |
|
Ответы с готовыми решениями:
10
Работа с оперативной памятью Работа с оперативной памятью. Отследить куда считываются значения Создание второго процесса с общей оперативной памятью первого |
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||||
| 30.07.2012, 10:31 | ||||
|
0
|
||||
|
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 4
|
|
| 30.07.2012, 16:00 [ТС] | |
|
ValeryS, хм, выходит я не верно использую эту функцию. ну что, ж главное я выяснил. осталось понять как, но это уже детали. главное есть отправная точка
про микроконтрллерную технику. конкретно под MK AVR ATmega16. универсальная программируемая микросхема. отличная вещь, если нужно собрать что-то не большое. и если что-то необходимо обрабатывать в реальном времени, то проще всего сделать асемблерную вставку, поскольку на обработку сишных команд уходят лишние такты.
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||||||||
| 30.07.2012, 16:13 | |||||||||
|
Не по теме:
Ты всерьез считаешь что ассемблерная вставка будет быстрее??? мне всего пару раз приходилось писать вставки а для AtMega вообще ни разу знай свой компилятор, поменьше используй библиотек и не будешь проигрывать в скорости а скорость разработки в разы больше по теме fopen() открывает файл а читает fread
0
|
|||||||||
| 30.07.2012, 16:17 | |
|
воспользуйся примерчиком из первоисточника
http://msdn.microsoft.com/en-u... 85%29.aspx читай хоть по байту.
0
|
|
|
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 4
|
|||
| 30.07.2012, 16:31 [ТС] | |||
|
и да, я всерьёз считаю что асм бывает быстрее ) во всяком случае по скорости обработки команд точно выигрывает) я не программист ) мне просто это любопытно, поэтому пытаюсь понять что и как. спасибо за источники, попробую разобраться )))
0
|
|||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||||
| 30.07.2012, 16:54 | ||||
|
на самом деле создается хандлер(указатель) на файл и потом при помощи этого хандлера ты можешь писать в файл читать и никто в это время ни сможет пользоваться этим файлом (читал наверное "файл используется ....") в конце файл надо закрыть а иногда компилятор оптимизирует и получится быстрее чем на асме а скорость чаще всего зависит не от языка а от кривых алгоритмов
1
|
||||
|
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 4
|
|
| 30.07.2012, 16:58 [ТС] | |
|
мне нужно из файла вычитывать данный, побайтно. путь к файлу задаётся после запуска программы(фактически путь указывает пользователь). при этом нужно его прочитать так, что бы он не попал в оперативку, только вычитываемые из него данные, для дальнейшей обработки =)
но кажется я уже понял =)) создаём поток, а в поток читаем нужную часть данных. потом вычищаем оперативную память и читаем следующий кусок.. как-то такспасибо =)
0
|
|
|
6 / 3 / 0
Регистрация: 19.03.2019
Сообщений: 157
|
||
| 19.09.2020, 11:49 | ||
|
File Mapping - Win32 apps | Microsoft Docs (Источник) File mapping - это ассоциация содержимого файла с частью виртуального адресного пространства процесса. Система создает объект сопоставления файлов (также известный как объект раздела) для поддержания этой связи. Представление файла - это часть виртуального адресного пространства, которую процесс использует для доступа к содержимому файла. Отображение файлов позволяет процессу использовать как случайный ввод и вывод (I / O), так и последовательный ввод / вывод. Это также позволяет процессу эффективно работать с большим файлом данных, например с базой данных, без необходимости отображать весь файл в памяти. Несколько процессов также могут использовать файлы с отображением памяти для обмена данными.
0
|
||
| 19.09.2020, 11:49 | |
|
Помогаю со студенческими работами здесь
11
работа с памятью Работа с памятью Работа с памятью Работа с памятью Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|