Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];

Вниз

что быстрее   Найти похожие ветки 

 
ford ©   (2009-05-07 13:29) [0]

Всем, привет!
Интересно Ваше мнение.
Есть одномерный массив размерность 1..10000000 элемент массива это структура TRec размером 108 байт
т.е. ежели его объявить
Var Mas:Array[1..10000000] of TRec
то оно съест больше гига оперативки
т.к. на компе стоит 512 МБ оперативки, то я предпологаю что винда разместит такую весч в файле подкачки

можно так не извращаться а открыть файлик и читать/писать из него данную структуру, со соответствующим смещением в файле по индексу элемента массива.

так вот вопрос, что по Вашему мнению будет работать быстрее
дать управление таким массивом ОС или всетаки работать с файликом ??


 
Игорь Шевченко ©   (2009-05-07 13:30) [1]

в чем задача ?


 
Eraser ©   (2009-05-07 13:31) [2]

> т.к. на компе стоит 512 МБ оперативки

у кого на компе? )


 
Anatoly Podgoretsky ©   (2009-05-07 13:33) [3]

Быстрее будет Memory Mapped Files.


 
ford ©   (2009-05-07 13:47) [4]


> Eraser ©   (07.05.09 13:31) [2]
> > т.к. на компе стоит 512 МБ оперативки
>
> у кого на компе? )

у меня например а что?? есть проблемма??
ну немогу я купить себе планку в пару терабайт
не выпускают еще :))


> Игорь Шевченко ©   (07.05.09 13:30) [1]
> в чем задача ?

задача, рабоать с этим массивом
писать/читать элементы массива
:) как обычно


> Anatoly Podgoretsky ©   (07.05.09 13:33) [3]
> Быстрее будет Memory Mapped Files.

а ежели не сложно, дай ссылку почитать про них, первый раз слышу
хотя может просто первый раз слышу такое название


 
MBo ©   (2009-05-07 14:03) [5]

CreateFileMapping
MapViewOfFile


 
Eraser ©   (2009-05-07 14:05) [6]

> [4] ford ©   (07.05.09 13:47)


> есть проблемма??

видимо есть, иначе б ветку не создал )

> ну немогу я купить себе планку в пару терабайт

купи на 2 ГБ.


 
Игорь Шевченко ©   (2009-05-07 14:07) [7]


> задача, рабоать с этим массивом
> писать/читать элементы массива
> :) как обычно


это не задача, это реализация. Я про задачу спрашиваю


 
ford ©   (2009-05-07 14:19) [8]


> это не задача, это реализация. Я про задачу спрашиваю

есть несколько задач которые используют такие вот массивы данных
программы работают все делают :) как положенно
алгоритм заполнения этих масивов данными я оптимизировал скорость устраивает
вот осталось оптимизировать алгоритм который реализован в классе управления этими данными (работа с элементами массива)

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

самый быстрый способ обрабатывать такой массив ессесно загрузить его в оперативку, но размеры (от 1 до 8 гиг)  пугают это делать

вот оказывается есть такая штука как Memory Mapped File

я вообще не очень понимаю, зачем тебе задача то??
основная задача это оптимизировать то что есть по скорости :)


 
Медвежонок Пятачок ©   (2009-05-07 14:23) [9]

по скорости говоришь? а чего на память жалуешься?


 
ford ©   (2009-05-07 14:24) [10]


> купи на 2 ГБ.

вот потому то нынешние игрушки требуют супер пупер компьютеров
многие разработчики вместо того чтобы оптимизировать алгоритмы, заставляют пользователя покупать все более мощьные железяки
:)
к стати лет 12 назад на 386 машинках игрались по сети в леталку космическую, трехмерные модели с простыми заливками перемещались в бесконечном трехмерном пространстве, ни никаких торомзов и экзешник весил шоб не соврать кил 50-60
и графика там была 640х480 (больше мониторы не тянули)
и щас блин..... купи видюху штук за 15-20 проц штук за 10
жесткий гиг на 500 и игруля будет на паре ДВД
:)))


 
Игорь Шевченко ©   (2009-05-07 14:26) [11]


> я вообще не очень понимаю, зачем тебе задача то??


мне, как ты понимаешь, это нахрен не надо, проблема у тебя. Парься дальше


 
Медвежонок Пятачок ©   (2009-05-07 14:26) [12]

вот из за таких как ты, грузящих в память 10 лимонов элементов они и тормозят


 
ford ©   (2009-05-07 14:27) [13]


> Медвежонок Пятачок ©   (07.05.09 14:23) [9]
> по скорости говоришь? а чего на память жалуешься?

я не жалуюсь на память
я спрашиваю как будет быстрее работать с массивом в памяти или с массивом на жестком диске в файле
при условии что массивчик от 1 гига

а так ничего, ессесно в памяти массивчик быстрее обрабатывается
тока вот когда размер такой то windows его в свап засунет как пить дать
и будет также тебе с файлом работать


 
Дуб ©   (2009-05-07 14:28) [14]


> многие разработчики вместо того чтобы оптимизировать алгоритмы,

многие вместо того, чтобы сохранять экологию и прочие земные ресурсы - ходят в нейлоне и отапливаются газом. А надо по старинке - топиться дровами из ближайшего леса и ходить в шкурах.

:)))


 
Медвежонок Пятачок ©   (2009-05-07 14:30) [15]

я спрашиваю как будет быстрее работать с массивом в памяти или с массивом на жестком диске в файле

Совсем ку-ку?
Этот вопрос наверное в школьной информатике даже разъясняется.


 
sniknik ©   (2009-05-07 14:30) [16]

> я вообще не очень понимаю, зачем тебе задача то??
задачу можно решать. решать многими методами, выбирая разные реализации... а реализацию решать нельзя, и сменить неудачную нельзя, раз она выбрана а задача неизвестна.
т.е. в одном случае простор, а в другом ... - "подметать ломами от сих и до обеда".

может при другой реализации массив бы вовсе не понадобился... тогда и скорость бы возросла и память была бы не так актуальна.


 
sniknik ©   (2009-05-07 14:32) [17]

> и ходить в шкурах.
зеленых. не то за зверье они тебя съедят.


 
ford ©   (2009-05-07 14:47) [18]


> многие вместо того, чтобы сохранять экологию и прочие земные
> ресурсы - ходят в нейлоне и отапливаются газом. А надо по
> старинке - топиться дровами из ближайшего леса и ходить
> в шкурах.
>
> :)))

ну у тебя и сравнения :)
т.е. ты против шкур?? ябы посмотрел на тебя в нейлоне при -30 :)))))
или в том же нейлоне при +30
от картинка былабы ;)


 
Anatoly Podgoretsky ©   (2009-05-07 14:55) [19]


> ну немогу я купить себе планку в пару терабайт
> не выпускают еще :))

Выпускают платы на 2 ТБ, для серверов на базе Итаниум и подобных.


 
ford ©   (2009-05-07 14:56) [20]


> задачу можно решать. решать многими методами, выбирая разные
> реализации... а реализацию решать нельзя, и сменить неудачную
> нельзя, раз она выбрана а задача неизвестна.
> т.е. в одном случае простор, а в другом ... - "подметать
> ломами от сих и до обеда".
>
> может при другой реализации массив бы вовсе не понадобился.
> .. тогда и скорость бы возросла и память была бы не так
> актуальна.

охотно тебе верю
методов структурного анализа выделямых частиц при атомном взрыве тоже много и реализовать можно по разному

но в данном случае я описал задачу в самом первом посте, ну повторюсь,  
есть массив немерянной длины надо рабоать с его элементами - чиать\писать
что быдет быстрее грузить его в память и доверить ОС управление или всетаки работа напрямую с файлом из которого и читать и сохранять тудаже

в первом случае это будет просто
mas[1000]:=mas[1000]+100;
во втором
надо считать из файла
например так
f.Seek(N_Elementa*SizeOf(TRec),soFromBeginning);
f.Read(el,SizeOf(TRec);
...
действия с el
...
f.Seek(-SizeOf(TRec),soFromCurrent);
f.Write(el,SizeOf(Trec));

да ежели 1000 эл-тов то первый вариант быстрее
а если их милионы
купить много памяти не вариант
ибо сегодня их миллионы затра надо будет сотни милионов элементов использовать


 
Anatoly Podgoretsky ©   (2009-05-07 14:58) [21]

> ford  (07.05.2009 14:27:13)  [13]

1 гб массив элементарно в памяти помещается, даже на 32 битных программах.


 
ford ©   (2009-05-07 14:58) [22]


> Anatoly Podgoretsky ©
....
> Выпускают платы на 2 ТБ, для серверов на базе Итаниум и
> подобных.

круто
от бы мне на целерончик
такую воткнуть :)
да еще всем в офисе поставить
тока боюсь ежели я выпишу счет на такую планочку
то меня уволят нафиг :))))
и наймут других програмистов
;)


 
Anatoly Podgoretsky ©   (2009-05-07 14:59) [23]

> sniknik  (07.05.2009 14:32:17)  [17]

В килозеленых


 
Anatoly Podgoretsky ©   (2009-05-07 15:12) [24]

> ford  (07.05.2009 14:58:22)  [22]

У тебя денег нет на 2 гб, а ты про сверхдорогую память, а ведь кроме памяти придется еще покупать и машину и электростанцию :-)
Реально это переход на 64 бита и до 128 ГБ памяти.


 
Медвежонок Пятачок ©   (2009-05-07 15:14) [25]

в первом случае это будет просто
mas[1000]:=mas[1000]+100;


По тебе плачут базы данных. И смеются походу тоже.


 
Sergey13 ©   (2009-05-07 15:20) [26]

> [0] ford ©   (07.05.09 13:29)

А об использовании СУБД не думал?


 
Игорь Шевченко ©   (2009-05-07 15:22) [27]


> методов структурного анализа выделямых частиц при атомном
> взрыве тоже много и реализовать можно по разному


я очень надеюсь, что ты не эту задачу решаешь, так как в противном случае неизвестно даже, куда бежать.


 
ford ©   (2009-05-07 15:44) [28]


> Медвежонок Пятачок ©


> Sergey13 ©   (07.05.09 15:20) [26]

а вы думали откуда я такие масивы заполняю??
из неё родимой  беру данные которые необходимо обсчитать, перестроить согласно алгоритма, и вернуть обратно
ввиде результата
:))
но, сразу предупреждаю, данная задача, через БД не решается
БД - база данных, её основная функция это накапливать данные и выдавать подмножестов данных по запросу
не будете-же вы в СУБД решать диффуравнения :)


 
MBo ©   (2009-05-07 15:47) [29]

Какого типа дерево хранится в массиве?


 
Sha ©   (2009-05-07 15:48) [30]

> ford ©   (07.05.09 14:56) [20]
> но в данном случае я описал задачу в самом первом посте, ну повторюсь,  
> есть массив немерянной длины надо рабоать с его элементами - чиать\писать

че, в ТЗ так прям и написано?


 
ford ©   (2009-05-07 15:52) [31]


> Anatoly Podgoretsky ©   (07.05.09 15:12) [24]

ды причем тут я то :)
ну не все фирмы могу себе позволить купить супер-компьютер
да и технику обновлять ни кто не спешит
сам наверняка сталкивался с такими проблеммами
с другой стороны это правильно, накой ляд выбрасывать рабочую технику, заказчик платит деньги не за то что ты принесеш им счет на новую технику потомучто на их дровах оно не работает
а как раз таки за то что ты придумаешь и реализуешь такой алгоритм который будет работать и на "дровах" типа celeron

По вашему, так посмотреть, работа программиста сводиться к приобретению новой техники.
Например:
"типа да че там мозги колупать, чегото думать
метод сортировки пузырьком нихто не отменял
а то что ему подсунули пару гигов, дык че, купить итанум, планку на 2Т
рэйд пятого уровня на SCSI (или чего там сейчас модно)
да и дело в сконцом :))"


 
Медвежонок Пятачок ©   (2009-05-07 15:55) [32]

но, сразу предупреждаю, данная задача, через БД не решается

Решается и эта и намного более сложные задачи.


 
Sergey13 ©   (2009-05-07 15:55) [33]

> [28] ford ©   (07.05.09 15:44)
> БД - база данных, её основная функция это накапливать данные
> и выдавать подмножестов данных по запросу

А датасет очень похож на "массив немерянной длины " который основан на данных из "файлика" (БД) и позволяет "читать/писать из него данную структуру, со соответствующим смещением в файле по индексу элемента массива"


 
Игорь Шевченко ©   (2009-05-07 15:56) [34]

че ты народу мозги засоряешь ? возьми да измерь, что быстрее


 
ford ©   (2009-05-07 15:59) [35]


> MBo ©   (07.05.09 15:47) [29]
> Какого типа дерево хранится в массиве?


каждый узел имеет 60 ветвей
соответвенно на кадой ветке по узлу тогоже типа что и предыдущий + дополнительное поле

примерно так

т.е. каждый элемент массива имеет "ссылки" на 60 номеров элементов массива+дополнительное поле


 
БарЛог ©   (2009-05-07 16:01) [36]

> ford ©

Давно б взял да проверил опытным путём.


 
Anatoly Podgoretsky ©   (2009-05-07 16:01) [37]

> Игорь Шевченко  (07.05.2009 15:22:27)  [27]

Ничего при его методах успеешь убежать.


 
ford ©   (2009-05-07 16:03) [38]


> Sergey13 ©   (07.05.09 15:55) [33]

логично :)


> Игорь Шевченко ©   (07.05.09 15:56) [34]

да уже к этому сам склоняюсь
:)

едиственно что,
> Anatoly Podgoretsky ©   (07.05.09 13:33) [3]

вот чего еще надо попробовать будет
во всяком случае нашел статейку по поводу загрузки изображений из больших файлов при помощи такой от штуки :)
тока нигде не могу найти ну хоть какуюнить статью подробно описывающую эту технологию, что и как там внутри делается, остается тока догадываться


 
Sha ©   (2009-05-07 16:08) [39]

> ford ©

Тут многие пытаются тебе намекнуть, что программирование это не просто
кодинг на первой пришедшей в голову структуре данных, а параллельная
разработка структуры данных и кода. И если что-то одно из них становится
"немерянным", то это повод для пересмотра обоих составляющих.


 
Anatoly Podgoretsky ©   (2009-05-07 16:13) [40]


> ford ©   (07.05.09 16:03) [38]

Тут дело такое, быстро, но более дорогая машина с хорошими ресурсами и другими алгоритмами доступа.

Или медленно, но медленно - данные ограничиваются только устройством хранения. Спокойно сможешь обрабатывать теже 2 ТБ.

Поэтому середина обеспечивается или MMF или БД. БД расчитаны на обработку особо больших массивов данных.



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.037 c
2-1242709063
Rimdus
2009-05-19 08:57
2009.07.12
TAdoConnection в DLL


3-1223562042
KirillRepin
2008-10-09 18:20
2009.07.12
Список серверов и баз данных


15-1241987402
Юрий
2009-05-11 00:30
2009.07.12
С днем рождения ! 11 мая 2009 понедельник


2-1242801052
belmol
2009-05-20 10:30
2009.07.12
не понимаю как сделать, где ошибка


15-1242186290
vajo
2009-05-13 07:44
2009.07.12
Насколько должны быть одинакова CPU на 2хпроц-й М/B





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский