Главная страница
    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 или БД. БД расчитаны на обработку особо больших массивов данных.


 
MBo ©   (2009-05-07 16:15) [41]

>каждый узел имеет 60 ветвей

т.е. большую часть элемента занимают ссылки (номера) детишек?


 
asails   (2009-05-07 16:21) [42]


> ford ©   (07.05.09 14:58) [22]
>
> > Anatoly Podgoretsky ©
> ....
> > Выпускают платы на 2 ТБ, для серверов на базе Итаниум
> и
> > подобных.
>
> круто
> от бы мне на целерончик
> такую воткнуть :)

Твой целерончик сгорит тока при попытке посчитать, скока памяти к нему присобачили :)))


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

Ну-ну... Помимо БД есть еще и СУБД... Кстати, вторая задача - это уже туды.


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

Тады ХП (хранимые процедуры) тебе в помощь, чтоб зазря не таскать гигы с сервера на клиента.


 
boa_kaa ©   (2009-05-07 16:31) [43]


> ford ©   (07.05.09 15:44) [28]
> не будете-же вы в СУБД решать диффуравнения :)

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


 
ford ©   (2009-05-07 16:41) [44]


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

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

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

Так что какой алгоритм придумал, такой придумал, наверняка есть более красивое решение, 100%
но когда на этом же форуме я дал кусок кода и спросил как это сделать лучше, то увидел фразы типа "дай денег, сделаем"
пытаясь оптимизировать свой алгоритм, я вытянул из него все что можно (ессесно не фахт ;) )
например обработка 100000 исходных элементов занимает не сутки а всего 2 часа. тормоза остались только в классе где реализован механизм чтения записи данных, причем я не тупо читаю из файла, каждая запись это цепочка в которой есть указатель на следующую запись.
откуда собственно и возник вопрос  а не быстрее будет дать ОС самой решать когда записывать в файл а когда чиать из него, а программа будет работать с массивом "якобы" распопложенном в памяти.

про "немерянно" данных, я тут ни причем есть БД откуда они тянуться от там их немерянно а я их тока обрабатываю. Но при обработке мне надо записывать промежуточные результаты, писать в базу не вариант, потому как они временные и их надо будет удалять ежели буду так делать с базой , то через неделю сервер БД просто рухнет


 
ford ©   (2009-05-07 16:42) [45]


> MBo ©   (07.05.09 16:15) [41]

собственно говоря да
большую часть это ссылки на детей


 
ford ©   (2009-05-07 16:45) [46]


> boa_kaa ©   (07.05.09 16:31) [43]

это было сказанно для примера :) что не все можно решать при помощи СУБД
т.е. чтобы отсечь предложения о ХП
ибо пробовал :))
мало того что закат солнца в ручну (в рамках моей задачи) дык еще и дооолго


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

есть БД откуда они тянуться от там их немерянно а я их тока обрабатываю

И каким боком здесь нейросети?

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

Ну удалять, и чего?

ежели буду так делать с базой , то через неделю сервер БД просто рухнет

Он уже "рухал"? И сколько раз?
Или это просто фобия?


 
Sha ©   (2009-05-07 16:52) [48]

Неправильно оптимизировать "немерянный" алгоритм.
Стоит вернуться к постановке задачи в терминах пользователя.
После 40 постов в чем состоит эта задача для меня так и остается загадкой.


 
Sergey13 ©   (2009-05-07 16:53) [49]

> [44] ford ©   (07.05.09 16:41)

Ты много пишешь про глобальное. Нейросети, дифуравнения.
Тебя просили уже описать задачу, которую решаешь. Что за данные? Какие пертрубации ты с ними делаешь? Что за СУБД, где хранится "немеряно"?

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

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


 
MBo ©   (2009-05-07 16:56) [50]

>собственно говоря да
>большую часть это ссылки на детей

Тогда, вероятно, можно вовсе не хранить эти ссылки, а построить полное 60-арное дерево в массиве, подобно тому, как бинарная куча (heap) хранится. И все влезет в память.

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


 
ford ©   (2009-05-07 16:56) [51]


> Медвежонок Пятачок ©   (07.05.09 16:47) [47]

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

.....
я конечно не спец в написании СУБД
но я так понимаю что при создании таблицы и записи в неё данных СУБД раширяет имеющийся у неё контейнер (ORACLE,FIREBIRD,INTERBASE и др.) или просит добавить контейнер к уже имеющимся (SAPDB)
т.е. ты предлагаешь пару раз в день увеличивать тейблспейс
потом его "чистить" .....
и т.д
:)
я думаю всетаки рухнет


 
Медвежонок Пятачок ©   (2009-05-07 17:01) [52]

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


 
Anatoly Podgoretsky ©   (2009-05-07 17:02) [53]

> asails  (07.05.2009 16:21:42)  [42]

Вот чтобы не сгорел я и не использую Целерон. А Core 2 Quad


 
Медвежонок Пятачок ©   (2009-05-07 17:03) [54]

я думаю всетаки рухнет

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

Дело -то не шуточное.
Многие же используются для управления ядерными силами стран.
Как бы чего не вышло.


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


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


нефиг делать


> я конечно не спец в написании СУБД


именно


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

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


 
sniknik ©   (2009-05-07 17:06) [57]

> я думаю всетаки рухнет
тебе думать вредно.


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


> MBo ©   (07.05.09 16:56) [50]

я думал построить полное дерево
и засунуть его в память
но
посчитал примерно так (8 - размер данных для каждого узла)
первый уровень 60х8=480
второй уровень 60х60х8=28800
третий уровень 60х60х60х8=1728000
четвертый уровень 60х60х60х60х8=103680000
...
дальше считать бесмыслено пятый уровень 5.7 гиг :)


 
MBo ©   (2009-05-07 17:10) [59]

В первом посте речь шла о 10 миллионах элементов. это 4 уровня.


 
ford ©   (2009-05-07 17:14) [60]


> Медвежонок Пятачок ©   (07.05.09 17:03) [54]


> Игорь Шевченко ©   (07.05.09 17:05) [55]

ну ребяты, вы даете :)
пару гиг в базу туда сюда, да плевое дело
пару пальцев об-ть
:)
видимо у вас никто не знает о третьей нормальной форме :)
ибо такие объемы да в одну таблицу
.....
а ежели я захочу из такой таблички чегонить Like выбрать ??
и как ?? сразу мыло с веревкой припасти ??
или пистолет зараженный


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

и как именно два гига не дружат с третьей формой?


 
Sha ©   (2009-05-07 17:19) [62]

> ford ©   (07.05.09 17:07) [58]
> дальше считать бесмыслено пятый уровень 5.7 гиг :)

Процессор не обработает такое количество узлов за 1 тик.
Понимаешь о чем я? :)

Сформулируй, наконец, задачу.


 
sniknik ©   (2009-05-07 17:20) [63]

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

> видимо у вас никто не знает о третьей нормальной форме :)
и не надейся... они знают.

> а ежели я захочу из такой таблички чегонить Like выбрать ??
> и как ?? сразу мыло с веревкой припасти ??
> или пистолет зараженный
чтобы выжить надо пользоваться индексными поисками/"выборами".


 
sniknik ©   (2009-05-07 17:22) [64]

> Сформулируй, наконец, задачу.
зачем? станет же совсем не интересно тогда...


 
ford ©   (2009-05-07 17:23) [65]


> MBo ©   (07.05.09 17:10) [59]

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

на данный момент я немогу точно сказать сколько из них существует
единственно что текущий файл составляет 1,2 гига
при условии что обработанно только 100000 взодящих данных
а их примерно 2,5 млн.
но рост объема файла получается обратно пропорционален объему входных данных, т.е. остановиться рост гдето на 2,5-3 гигах (надеюсь :) )

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


 
Sha ©   (2009-05-07 17:26) [66]

Самодельное полнотекстовое индексирование?


 
ford ©   (2009-05-07 17:29) [67]


> sniknik ©   (07.05.09 17:20) [63]

а вот не построит тебе FireBird инекса по VarChar(250)
и будет Like перебор полный делать хоть убейся
:)
можно конечно перейти на ORACLE но это не в моей компетенции


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

> а вот не построит тебе FireBird инекса по VarChar(250)
а я этого и не предлагал... "упирать" надо на индексы по числам/ссылкам на текст но не по самому тексту.


 
ford ©   (2009-05-07 17:34) [69]


> Sha ©   (07.05.09 17:26) [66]

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


 
sniknik ©   (2009-05-07 17:34) [70]

[0]
> массива это структура TRec размером 108 байт

откуда строки по 250 символов? или ты для "своего" решения берешь одно а нам "пыжишься" показать другое?

а смысл?


 
ford ©   (2009-05-07 17:41) [71]


> sniknik ©   (07.05.09 17:34) [70]

я написал тебе например, как ответ на твою фразу о использовании индекса
просто FireBird проиндексирует VarChar(50)
а вот больше, непомню щас, какого-то количества он не умеет


 
Sha ©   (2009-05-07 17:42) [72]

ford ©   (07.05.09 17:34) [69]

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


 
Jeer ©   (2009-05-07 17:44) [73]

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


 
ford ©   (2009-05-07 17:46) [74]


> Sha ©   (07.05.09 17:42) [72]

почти так и делается


 
Fast   (2009-05-07 17:57) [75]

>  что быстрее
> > ford ©   (07.05.09 13:29)


"Быстрее" будет не писАть программы с такой логикой.


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


> видимо у вас никто не знает о третьей нормальной форме :
> )


А что это такое ?


> а ежели я захочу из такой таблички чегонить Like выбрать
> ??


выбирай


 
asails   (2009-05-07 18:52) [77]


> Anatoly Podgoretsky ©   (07.05.09 17:02) [53]
> > asails  (07.05.2009 16:21:42)  [42]
>
> Вот чтобы не сгорел я и не использую Целерон. А Core 2 Quad

И чего? Планки по 2ТБ держит?!! Хочу! А то, мой Quad зазря пылится... :)


> ford ©   (07.05.09 16:45) [46]
>
> > boa_kaa ©   (07.05.09 16:31) [43]
>
> это было сказанно для примера :) что не все можно решать
> при помощи СУБД
> т.е. чтобы отсечь предложения о ХП

А зачем их отсекать. Имхо, в большинстве случаев тащить 2 гига на клиента, там их обсчитывать и результат гнать обратно в БД есть мазохизм.
Может, у тебя случай, конечно, особенный, но тогда уж озвучь, будь другом! Интересно-же...


 
Хитрий Лис   (2009-05-07 20:43) [78]

Автор - будьте так добры :) поделитесь с общественностью.
Какому алгоритму нужно одновременно обрабатывать 10 мильёнов записей ?


 
Anatoly Podgoretsky ©   (2009-05-08 11:08) [79]

> asails  (07.05.2009 18:52:17)  [77]

> И чего? Планки по 2ТБ держит?!! Хочу! А то, мой Quad зазря пылится... :)

Просто не горит.
Quad между прочим тянет до 2^64 байт, плату правда сложно найти, надо серверную искать.


 
Anatoly Podgoretsky ©   (2009-05-08 11:13) [80]

> Anatoly Podgoretsky  (08.05.2009 11:08:19)  [79]

Кстати планок на 2 ТБ нет, это отдельные платы по 2 ТБ


 
Anatoly Podgoretsky ©   (2009-05-08 11:26) [81]

> Anatoly Podgoretsky  (08.05.2009 11:13:20)  [80]

Точнее не платы, блоки устанавливаемые в 19" стойку, со своим источником питания и оптическим каналом(лами), минимум на 10 гигабит.


 
Омлет   (2009-05-11 21:36) [82]

> Какому алгоритму нужно одновременно обрабатывать 10 мильёнов записей ?

ИИ, как пить дать


 
Pavia ©   (2009-05-11 23:56) [83]


> Quad между прочим тянет до 2^64 байт, плату правда сложно
> найти, надо серверную искать.

На материнках ограничения на 2^36.  Да и маны на процы надо читать там вроде тоже такое же ограничение.


 
Anatoly Podgoretsky ©   (2009-05-12 00:05) [84]

> Pavia  (11.05.2009 23:56:23)  [83]

Это ограничение PAE и оно зависит от типа процессора, от 2^36 до 2^41


 
Petr V. Abramov ©   (2009-05-12 00:28) [85]


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

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


 
Pavia ©   (2009-05-12 00:55) [86]

Если все можно загрузить в память компьютера то хорошо.  Если нет то плохо.

Лучше всего найти готовое решение.
Так если объемы данных большии то обрабатывать их надо блоками.
В память компьютера загружается блок достаточного объема. Даже правельнее сказать не блоками и группами.

Еще следует запомнить что идеальные теории не ложатья на практику.



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

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

Наверх





Память: 0.71 MB
Время: 0.005 c
6-1204586032
Квэнди
2008-03-04 02:13
2009.07.12
Indy 9 и ограничение скорости


15-1241855353
Riply
2009-05-09 11:49
2009.07.12
Guav, с днем рожденья !


2-1243107805
Dot
2009-05-23 23:43
2009.07.12
запись значения из таблицы в переменную


2-1243005859
Tatarin
2009-05-22 19:24
2009.07.12
Оптимизиция DirectX движка


2-1242990507
Андрей (начинающий)
2009-05-22 15:08
2009.07.12
TWebBrowser и контекстное меню





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский