|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.12.2017, 11:26 | #1 |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
Работа с ОЗУ (Delphi)
Добрый день,
ТЗ: Измерить скорости чтения блоков данных из ОЗУ Я решил реализовывать это через проецируемый в память файл. То есть пользователь указывает кол-во элементов для записи в файл. Реализуется заполнение файла проецируемого в память random элементами, кол-во которых указал пользователь. + Идёт подсчёт времени процесса записи в файл. Но почитав, я узнал, что при использовании FileMapping используется виртуальная память системы. То есть как я понял может быть задействована память, резервируемая операционной системой на жестком диске, а не только ОЗУ. И получается я работаю не чисто с ОЗУ ? Собственно нужна помощь в понимании, как задействовать в работе только ОЗУ ? Ниже ссылка на архив с моим проектом. Моя программа: Код:
|
01.12.2017, 13:04 | #2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Зачем усложнять и делать проецирование файлов? Оно по любому будет работать с жёстким диском. Достаточно динамического массива или использовать динамическую память GetMem /FreeMem.
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 01.12.2017 в 13:08. |
08.12.2017, 11:02 | #3 | |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
Цитата:
Но я побеседовал с преподавателем. Он хочет, чтобы при нажатии кнопки "Тест" строился график, где ось X - размер блока данных, Мб. Ось y - скорость чтения блока данных из ОЗУ, Мб/с. Блоки данных изменяются с шагом, например, начинаем с 10 Мб. Шаг 5 Мб. Соответственно далее выделяется 15 мб и определяется скорость чтения блока данных из озу и т.д. Пример графика, прикреплю снизу. Но это я могу сделать сам. Проблема в другом, почему скорость чтения не совпадает со скоростью по "документам" ? У меня оперативка с частотой 1333 Мгц. Скорость чтения должна быть около 10000 Мб/c. ( Скрин ниже ) Вторая проблема, если ввыделять больше 1 гига. Возникает ошибка "Out of Memory". Хотя я отслеживаю оперативку через мониторинг ОЗУ диспетчера задач и там пишет, что свободно около 5 гигов. Программа во время теста честно забирает 1 гиг свободной оперативки и возвращает его после выполнения. Так почему же не могу выделить больше 1 гига. Проблема в самой Delphi или ОС ? Использовал ваш код. Пытался переделывать чтоб избежать этих ошибок. Вначале пытался решить проблему со скоростью чтения блоков данных из ОЗУ. Вместо GetTickCount пытался использовать следующу конструкцию: Код:
Ошибку Out of Memory пытался решить в конце уничтожением динамического массива через команду Код:
Последний раз редактировалось artems67; 08.12.2017 в 11:04. |
|
08.12.2017, 13:43 | #4 | ||
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
Цитата:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
||
08.12.2017, 14:12 | #5 | |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
Цитата:
У меня ноутбук Acer Aspire 5755G старенький 2011 года. Мать и 2 плашки оперативы прекрепил снизу + быстрый отчёт с Aida. Вроде по харькам материнки до 20000 Мб/c пропускная способность. А вот реальная частота 600 Мгц смущает. В этом причина ? А то я в железе не профан. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ОЗУ | Egor09 | Windows | 6 | 22.05.2014 20:28 |
Delphi. Работа с процессами - узнать количество занимаемой процессом памяти в ОЗУ и определить загрузку процессора | alex111089 | Помощь студентам | 2 | 19.01.2013 21:44 |
Тестирование озу | dimapo | Помощь студентам | 0 | 27.11.2012 15:20 |
ОЗУ | Deadnight | Свободное общение | 16 | 10.04.2012 21:31 |
ОЗУ | esa2esa | Компьютерное железо | 2 | 29.12.2010 20:45 |