Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Числа

1.8K
08 июля 2003 года
A_l_e_x_T
40 / / 27.10.2002
Доброе время суток!
Кто знает как можно в Buildere организовать работу с массивами, точнее скажем с последовательностью чисел порядок которой, например 10^8. При этом необходимо производить математические действия над этими числами.
Если выделять под такой массив память, то комп начинает загибаться. Можно записывать эти числа в файл и работать с ними от туда. Может кто подскажет как лучше.
Спасибо
460
08 июля 2003 года
Berg
261 / / 27.03.2003
Если под "порядком последовательности" понимается число ее элементов (пусть типа int) и это дело тянет на 380Мб, то, наверное, стоит попробовать upgrade до 2Gb и работать в динамической памяти...
Все-таки не должен загнуться-то комп...
А если мутить с файлом, то тогда отображай его на память - неплохо получается...И индексирование удобное (как в массиве). Например:
HANDLE hf = CreateFile(fname, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
if (hf == INVALID_HANDLE_VALUE) return NULL;

HANDLE hm = CreateFileMapping(hf, NULL, PAGE_READONLY, 0, 0, NULL);
if (!hm) return NULL;

LPVOID pf = MapViewOfFile(hm, FILE_MAP_READ, 0, 0, 0);
if (!pf) return NULL;
3
08 июля 2003 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by A_l_e_x_T
Доброе время суток!
Кто знает как можно в Buildere организовать работу с массивами, точнее скажем с последовательностью чисел порядок которой, например 10^8. При этом необходимо производить математические действия над этими числами.
Если выделять под такой массив память, то комп начинает загибаться. Можно записывать эти числа в файл и работать с ними от туда. Может кто подскажет как лучше.
Спасибо



Ты уверен, что тебе нужны такие объемы?
Может приведешь пример использования?

295
08 июля 2003 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by Green


Ты уверен, что тебе нужны такие объемы?
Может приведешь пример использования?


Примеров куча. Например коррекция полёта крылатых ракет по рельефу местности, расчёт ущерба от массированного удара и т.п.

1.8K
08 июля 2003 года
A_l_e_x_T
40 / / 27.10.2002
Цитата:
Originally posted by Green


Ты уверен, что тебе нужны такие объемы?
Может приведешь пример использования?



Скажем так это мне необходимо для конкретной цели. Я провожу анализ 128 битных генераторов псевдослучайных чисел и для того чтобы их полностью проверить или скажем более менее корректной проверки. Числа 128 битные генерятся все нормально, а вот скажем если, например, ставишь ему 10^8 и больше то комп уходит в нирвану и от туда уже не возвращается. Вот поэтому я и думаю как лучше организовать работу.

1.8K
08 июля 2003 года
A_l_e_x_T
40 / / 27.10.2002
Цитата:
Originally posted by Berg
Если под "порядком последовательности" понимается число ее элементов (пусть типа int) и это дело тянет на 380Мб, то, наверное, стоит попробовать upgrade до 2Gb и работать в динамической памяти...
Все-таки не должен загнуться-то комп...
А если мутить с файлом, то тогда отображай его на память - неплохо получается...И индексирование удобное (как в массиве). Например:
HANDLE hf = CreateFile(fname, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
if (hf == INVALID_HANDLE_VALUE) return NULL;

HANDLE hm = CreateFileMapping(hf, NULL, PAGE_READONLY, 0, 0, NULL);
if (!hm) return NULL;

LPVOID pf = MapViewOfFile(hm, FILE_MAP_READ, 0, 0, 0);
if (!pf) return NULL;



Если можно то поконкретнее, а то что то я в тему не въезжаю(знаю бывает и такое).))))))))

3
08 июля 2003 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by gray_k

Примеров куча. Например коррекция полёта крылатых ракет по рельефу местности, расчёт ущерба от массированного удара и т.п.



Что-то я сомневаюсь, что расчет полета, а тем более коррекция полета крылатой ракеты занимает такой объем данных. На сколько знаю, программы там терминальные (т.е. постоянный расчет курса относительно текущей и конечной точки с учетом внешних факторов) и не опереруют огромными объемами информации в каждый конкретно взятый момент времени. Хотя, могу и ошибаться, т.к. дело имел только с РН и КА.

Про массированный удар тоже сомневаюсь, там формулы на страницу умещаются. Сам считал, когда учился.
А вот про моделирование ядерных процессов, это ДА. Там объемы офигительные.

Но я не про то, я про то, что большие объемы часто можно "размазать" по времени, или же бывает, что можно обойтись хешем.

295
08 июля 2003 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by Green


Что-то я сомневаюсь, что расчет полета, а тем более коррекция полета крылатой ракеты занимает такой объем данных. На сколько знаю, программы там терминальные (т.е. постоянный расчет курса относительно текущей и конечной точки с учетом внешних факторов) и не опереруют огромными объемами информации в каждый конкретно взятый момент времени. Хотя, могу и ошибаться, т.к. дело имел только с РН и КА.

Про массированный удар тоже сомневаюсь, там формулы на страницу умещаются. Сам считал, когда учился.
А вот про моделирование ядерных процессов, это ДА. Там объемы офигительные.

Но я не про то, я про то, что большие объемы часто можно "размазать" по времени, или же бывает, что можно обойтись хешем.


Я имел ввиду не реальный процесс, а его моделирование. А про расчёт массированного удара - пройдись по карте США с шагом 5 км, вот и получишь массив мегов так 300. Методов оптимизации, позволяющих сократить расчёты для выбора оптимальной стратегии пока нет.
Что же касается ядерных процессов, то для их расчёта мощности ни одной персоналки в мире не хватит. Этим пытаются заниматься в Лос-Аламосе, но пока судя по всему безуспешно.

460
08 июля 2003 года
Berg
261 / / 27.03.2003
Цитата:
Originally posted by A_l_e_x_T


Если можно то поконкретнее, а то что то я в тему не въезжаю(знаю бывает и такое).))))))))



Что именно поконкретнее?
Если ты про map, то после вышеуказанной последовательности действий pf будет являться указателем на обычный байтовый массив, обращения к которому можно производить как обычно без всякого гемороя подобного fileseek или как там его.

Лекцию про файлы, отображаемые в память, посмотри в MSDN. Там есть про CreateFileMapping...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог