|
|
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Ещё с 80-х годов прошлого столетия существуют хитрые алгоритмы, которые превращают любой массив чисел в степенные функции. Я уже не помню подробностей, но в то время использовал их для массивов (довольно объемных) нормативов времени и режимов резанья (машиностоительная технологическая САПР). Точность получается вполне удовлетворительная. Если задача допускает некоторое снижение точности, есть смысл над этим подумать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2017, 18:58 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
SQLite InMemory и не выдумывайте ничего! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2017, 22:51 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Уважаемый авторSQLite InMemory и не выдумывайте ничего! авторКак работать с массивом около 10 миллиардов (1е10) значений типа реал (да - все десять миллиардов разные числа формата 9.12345е26, готов на любой другой тип способный съесть подобный формат чисел). Массив задан записью: рекорд[1..3] of рекорд[1..20] of рекорд[1..60] of рекорд[1..60] of рекорд[1..163] of рекорд[1..312] с кучей побочных параметров на каждом уровне. Уважаемый автор , а как Вы предлагаете засовывать туда описанную выше стр-ру данных, и сколько места ин мемори она предположительно займет, чтобы все значения были легкодоступны? мне не кажется очевидным, что все будет легко и красиво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 09:57 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Vladimir BaskakovАндрей Игоревич, интересная задача. но, если покажете сообществу образцы, примерные форматы, которые грузите, и расскажите, что хотите с ними делать - возможно советы будут более предметными. С уважением ........ Ну уж не знаю зачем оно вам надо, но могу и показать, да рассказать, не секретно. Все просто текстовые файлы с распределением полей по 3х мерной геометрии во времени. Если более конкретно: нейтронные поля в активной зоне реактора. Координаты точек поля задаются на основании геометрии ТВС и твэлов. (в активной зоне 163 ТВС в каждой по 312 твэлов, 5-60 отсечек по высоте и 50-60 отсечек по времени для каждого года эксплуатации). Содержание файла представляет тысячи и тысячи блоков формата FLUX001001000000 E>=0.1 2.68237E+13,2.86991E+13,2.86198E+13,2.66761E+13,2.49279E+13,2.50176E+13,2.68420E+13,3.05655E+13,3.05324E+13,3.03947E+13,2.84124E+13,2.64006E+13,2.46938E+13,2.30162E+13,2.31666E+13,2.32262E+13, 2.49536E+13,2.67552E+13,2.86337E+13,3.25414E+13,3.10929E+13,3.24436E+13,3.22929E+13,2.88898E+13,2.81980E+13,2.61667E+13,2.33781E+13,2.27809E+13,2.12300E+13,2.04919E+13,2.15459E+13,2.15688E+13, 2.21704E+13,2.48872E+13,2.66729E+13,2.73125E+13,3.05145E+13,3.46456E+13,3.45951E+13,3.45530E+13,3.45253E+13,3.43325E+13,3.21060E+13,3.00110E+13,2.79882E+13,2.59154E+13,2.42194E+13,2.25523E+13, 2.01067E+13,1.95701E+13,1.98043E+13,1.99377E+13,2.00060E+13,1.99277E+13,2.14984E+13,2.31055E+13,2.48309E+13,2.65389E+13,2.84739E+13,3.04549E+13,3.25724E+13,3.52034E+13,3.68067E+13,3.67907E+13, 3.67284E+13,3.65886E+13,3.48230E+13,3.41310E+13,3.18976E+13,2.97774E+13,2.76532E+13,2.44813E+13,2.39554E+13,2.23163E+13,2.07708E+13,1.93456E+13,1.72183E+13,1.82258E+13,1.83614E+13,1.84365E+13, 1.84456E+13,1.75525E+13,1.98200E+13,2.13562E+13,2.29481E+13,2.46509E+13,2.52253E+13,2.83422E+13,3.03901E+13,3.24575E+13,3.46169E+13,3.90867E+13,3.91052E+13,3.90987E+13,3.73402E+13,3.89493E+13, 3.87928E+13,3.86078E+13,3.62162E+13,3.38722E+13,3.02584E+13,2.94980E+13,2.73463E+13,2.52736E+13,2.36316E+13,2.20176E+13,1.96025E+13,1.91156E+13,1.77763E+13,1.65105E+13,1.67404E+13,1.68899E+13, 1.62218E+13,1.70111E+13,1.69815E+13,1.68636E+13,1.82307E+13,1.96771E+13,2.02358E+13,2.27560E+13,2.44633E+13,2.62106E+13,2.82126E+13,3.02883E+13,3.09524E+13,3.45167E+13,3.67777E+13,4.15157E+13, 4.15969E+13,4.16099E+13,4.14825E+13,4.14053E+13,4.13732E+13,4.11963E+13,4.09461E+13,3.84528E+13,3.60285E+13,3.36135E+13,3.13728E+13,2.92179E+13,2.70397E+13,2.48679E+13,2.32392E+13,2.16734E+13, 2.01535E+13,1.87683E+13,1.74691E+13,1.62100E+13,1.49917E+13,1.52829E+13,1.54807E+13,1.55843E+13,1.56367E+13,1.56394E+13,1.55474E+13,1.53645E+13,1.66778E+13,1.80389E+13,1.94408E+13,2.09285E+13, 2.25583E+13,2.42422E+13,2.60004E+13,2.81000E+13,3.02006E+13,3.22725E+13,3.44328E+13,3.67666E+13,3.91060E+13,4.28304E+13,4.40048E+13,4.41044E+13,4.41074E+13,4.40447E+13,4.39467E+13,4.37809E+13, 4.35156E+13,4.21841E+13,4.06179E+13,3.81396E+13,3.57110E+13,3.33527E+13,3.10685E+13,2.88147E+13,2.65568E+13,2.37280E+13,2.26794E+13,2.11481E+13,1.96849E+13,1.83040E+13,1.70080E+13,1.57766E+13, 1.45919E+13,1.31408E+13,1.37974E+13,1.40489E+13,1.42083E+13,1.42898E+13,1.43025E+13,1.42385E+13,1.40854E+13,1.35270E+13,1.50833E+13,1.63714E+13,1.77105E+13,1.91180E+13,2.06175E+13,2.22092E+13, 2.38799E+13,2.50523E+13,2.78301E+13,3.00066E+13,3.21741E+13,3.43694E+13,3.66380E+13,3.89760E+13,4.13643E+13,4.60353E+13,4.63324E+13,4.65261E+13,4.66170E+13,4.66158E+13,4.65335E+13,4.63701E+13, 4.61140E+13,4.57537E+13,4.52854E+13,4.27000E+13,4.01712E+13,3.76943E+13,3.52738E+13,3.29078E+13,3.05799E+13,2.82636E+13,2.59296E+13,2.35486E+13,2.19557E+13,2.04437E+13,1.90124E+13,1.76621E+13, 1.63905E+13,1.51908E+13,1.40526E+13,1.29627E+13,1.19076E+13,1.23127E+13,1.26093E+13,1.28112E+13,1.29299E+13,1.29721E+13,1.29384E+13,1.28240E+13,1.26206E+13,1.23216E+13,1.34815E+13,1.46825E+13, 1.59339E+13,1.72496E+13,1.86447E+13,2.01307E+13,2.17115E+13,2.33845E+13,2.51477E+13,2.74406E+13,2.96861E+13,3.19095E+13,3.41403E+13,3.64071E+13,3.87279E+13,4.11060E+13,4.35391E+13,4.81290E+13, 4.85582E+13,4.88451E+13,4.90257E+13,4.90995E+13,4.90669E+13,4.89297E+13,4.86878E+13,4.83410E+13,4.78885E+13,4.72892E+13,4.46676E+13,4.20919E+13,3.95690E+13,3.70999E+13,3.46800E+13,3.22970E+13, 2.99338E+13,2.75682E+13,2.51718E+13,2.26879E+13,2.10583E+13,1.95454E+13,1.81394E+13,1.68257E+13,1.55909E+13,1.44288E+13,1.33378E+13,1.23145E+13,1.13489E+13,1.04244E+13,1.08517E+13,1.11777E+13, 1.14136E+13,1.15666E+13,1.16421E+13,1.16424E+13,1.15665E+13,1.14109E+13,1.11725E+13,1.08502E+13,1.18961E+13,1.29907E+13,1.41400E+13,1.53510E+13,1.66356E+13,1.80080E+13,1.94807E+13,2.10624E+13, 2.27579E+13,2.45731E+13,2.69520E+13,2.92488E+13,3.15122E+13,3.37679E+13,3.60403E+13,3.83497E+13,4.07090E+13,4.31242E+13,4.55988E+13, E>=1.0 1.16438E+13,1.24622E+13,1.24296E+13,1.15824E+13,1.08178E+13,1.08535E+13,1.16495E+13,1.32776E+13,1.32643E+13,1.32068E+13,1.23410E+13,1.14654E+13,1.07190E+13,9.98433E+12,1.00465E+13,1.00667E+13, 1.08229E+13,1.16081E+13,1.24330E+13,1.41404E+13,1.33272E+13,1.41004E+13,1.40357E+13,1.23825E+13,1.22470E+13,1.13609E+13,1.00094E+13,9.88160E+12,9.19839E+12,8.75814E+12,9.32950E+12,9.33155E+12, 9.47314E+12,1.07871E+13,1.15654E+13,1.16939E+13,1.32552E+13,1.50549E+13,1.50377E+13,1.50200E+13,1.50056E+13,1.49204E+13,1.39528E+13,1.30372E+13,1.21519E+13,1.12436E+13,1.05050E+13,9.77717E+12, 8.57998E+12,8.46136E+12,8.56385E+12,8.61915E+12,8.64292E+12,8.60016E+12,9.29057E+12,9.99626E+12,1.07501E+13,1.14970E+13,1.23529E+13,1.32249E+13,1.41497E+13,1.50891E+13,1.59985E+13,1.59916E+13, 1.59640E+13,1.59033E+13,1.49284E+13,1.48303E+13,1.38577E+13,1.29295E+13,1.20003E+13,1.04704E+13,1.03779E+13,9.66462E+12,8.98646E+12,8.35664E+12,7.32190E+12,7.85971E+12,7.91919E+12,7.94762E+12, 7.94246E+12,7.44519E+12,8.53870E+12,9.21377E+12,9.91223E+12,1.06553E+13,1.07649E+13,1.22858E+13,1.31877E+13,1.40961E+13,1.50391E+13,1.69881E+13,1.69985E+13,1.69963E+13,1.60095E+13,1.69307E+13, 1.68618E+13,1.67784E+13,1.57360E+13,1.47161E+13,1.29644E+13,1.28003E+13,1.18559E+13,1.09376E+13,1.02206E+13,9.51824E+12,8.35441E+12,8.24262E+12,7.64831E+12,7.07941E+12,7.18749E+12,7.25604E+12, 6.87686E+12,7.30055E+12,7.27548E+12,7.20676E+12,7.81569E+12,8.45337E+12,8.59129E+12,9.80569E+12,1.05511E+13,1.13175E+13,1.22147E+13,1.31334E+13,1.32527E+13,1.49939E+13,1.59801E+13,1.80431E+13, 1.80796E+13,1.80867E+13,1.80352E+13,1.80012E+13,1.79826E+13,1.79032E+13,1.77918E+13,1.67058E+13,1.56499E+13,1.45988E+13,1.36168E+13,1.26692E+13,1.17079E+13,1.07426E+13,1.00298E+13,9.34563E+12, 8.68122E+12,8.07174E+12,7.49724E+12,6.93501E+12,6.38406E+12,6.52144E+12,6.61286E+12,6.65836E+12,6.67720E+12,6.66953E+12,6.61488E+12,6.51351E+12,7.10060E+12,7.70314E+12,8.32019E+12,8.97373E+12, 9.68684E+12,1.04253E+13,1.11992E+13,1.21460E+13,1.30830E+13,1.40014E+13,1.49528E+13,1.59715E+13,1.69924E+13,1.85051E+13,1.91319E+13,1.91749E+13,1.91771E+13,1.91503E+13,1.91061E+13,1.90320E+13, 1.89152E+13,1.82193E+13,1.76499E+13,1.65692E+13,1.55099E+13,1.44792E+13,1.34772E+13,1.24847E+13,1.14847E+13,1.01622E+13,9.76198E+12,9.09025E+12,8.44915E+12,7.84333E+12,7.27221E+12,6.72532E+12, 6.19272E+12,5.50210E+12,5.83533E+12,5.95250E+12,6.02446E+12,6.05820E+12,6.05748E+12,6.01833E+12,5.93371E+12,5.62962E+12,6.35930E+12,6.93110E+12,7.52083E+12,8.13844E+12,8.79558E+12,9.49433E+12, 1.02309E+13,1.06896E+13,1.20094E+13,1.29863E+13,1.39502E+13,1.49195E+13,1.59151E+13,1.69376E+13,1.79806E+13,2.00380E+13,2.01591E+13,2.02399E+13,2.02785E+13,2.02779E+13,2.02414E+13,2.01690E+13, 2.00568E+13,1.99008E+13,1.97012E+13,1.85671E+13,1.74613E+13,1.63789E+13,1.53206E+13,1.42841E+13,1.32608E+13,1.22376E+13,1.11988E+13,1.01275E+13,9.41829E+12,8.75008E+12,8.12023E+12,7.52755E+12, 6.96906E+12,6.43945E+12,5.93148E+12,5.43637E+12,4.94585E+12,5.13960E+12,5.27891E+12,5.37122E+12,5.42299E+12,5.43751E+12,5.41471E+12,5.35125E+12,5.24103E+12,5.07813E+12,5.60417E+12,6.13895E+12, 6.68986E+12,7.26603E+12,7.87636E+12,8.52824E+12,9.22590E+12,9.97062E+12,1.07649E+13,1.18203E+13,1.28366E+13,1.38307E+13,1.48196E+13,1.58182E+13,1.68365E+13,1.78778E+13,1.89429E+13,2.09706E+13, 2.11467E+13,2.12659E+13,2.13426E+13,2.13745E+13,2.13599E+13,2.12989E+13,2.11920E+13,2.10404E+13,2.08453E+13,2.05890E+13,1.94397E+13,1.83109E+13,1.72062E+13,1.61255E+13,1.50653E+13,1.40188E+13, 1.29767E+13,1.19271E+13,1.08533E+13,9.72385E+12,8.98983E+12,8.31321E+12,7.68999E+12,7.11180E+12,6.57076E+12,6.06136E+12,5.57937E+12,5.11945E+12,4.67400E+12,4.23267E+12,4.44099E+12,4.59536E+12, 4.70401E+12,4.77211E+12,4.80294E+12,4.79755E+12,4.75477E+12,4.67137E+12,4.54285E+12,4.36327E+12,4.84288E+12,5.33132E+12,5.83610E+12,6.36399E+12,6.92315E+12,7.52238E+12,8.17020E+12,8.87425E+12, 9.64069E+12,1.04732E+13,1.15854E+13,1.26362E+13,1.36557E+13,1.46609E+13,1.56661E+13,1.66827E+13,1.77183E+13,1.87773E+13,1.98622E+13, Где первая строка есть указатель времени, координаты и высоты. вторая и ещё одна где-то по середине - указатель энергии нейтронов (тепловые, быстрые), цифры - значения поля в конкретном твэле для указанных выше времени, энергии, ТВС и высоты. Так же есть небольшой файл перегрузок. Сразу говорю, я не программист, делаю данную программу для упрощения некоторых операций в работе, исключительно по собственной инициативе :). Для примера что мне надо: Поиск ТВС, твэла, участка твэла с наибольшим флюэнсом (накопленной радиацией), по сути обычный интеграл(сумма) для конкретного участка от времени. Всевозможные зависимости плотностей потока от высоты, времени по каналу, времени для конкретной ТВС, по сечению. Поиск всяких максимумов и минимумов, перекосов. Естественно для этого уже есть созданные программы, но своя удобней :). В принципе можно не подгружать всю геометрию, то есть "укрупнить сетку", так я сейчас и делаю. Vladimir BaskakovавторВ зависимости от пожеланий пользователя (то биш меня) сохранять разные относительно небольшие части этих огромных массивов в другие файлы. тут скорее всего надо сохранять по мере чтения, тогда память не перегрузится. причем, если и вход и выход - текстовые, не факт что паскаль из делфи - самый органичный язык для такой обработки. Можно, но уж очень медленно, а про делфипаскаль - чему умею, тем и делаю :). d7iЕщё с 80-х годов прошлого столетия существуют хитрые алгоритмы, которые превращают любой массив чисел в степенные функции. Я уже не помню подробностей, но в то время использовал их для массивов (довольно объемных) нормативов времени и режимов резанья (машиностоительная технологическая САПР). Точность получается вполне удовлетворительная. Если задача допускает некоторое снижение точности, есть смысл над этим подумать... Аппроксимация, конечно, дичайше ужмет данные массивы (что логично, так как они в основном и есть решения множества степенных функций + итерации), но очень уж для меня это усложнит задачу. Может как-нибудь потом). А то так вообще приду к тому, что проще станет исходную расчетную программу написать. В общем всем спасибо, советов тьма, теперь в них надо разобраться (а ведь на работе ещё и работу работать надо). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 11:33 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич, Правильно ли я понимаю, нужно каждый раз проходиться по всему массиву данных и выполнять определённого рода расчёты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:12 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич...Где первая строка есть указатель времени, координаты и высоты. вторая и ещё одна где-то по середине - указатель энергии нейтронов (тепловые, быстрые), цифры - значения поля в конкретном твэле для указанных выше времени, энергии, ТВС и высоты. Так же есть небольшой файл перегрузок. Для примера что мне надо: Поиск ТВС, твэла, участка твэла с наибольшим флюэнсом (накопленной радиацией), по сути обычный интеграл(сумма) для конкретного участка от времени. Всевозможные зависимости плотностей потока от высоты, времени по каналу, времени для конкретной ТВС, по сечению. Поиск всяких максимумов и минимумов, перекосов. База данных справится с поиском/нахождением максимума/минимума лучше, чем свои собственные придумки. К тому же при ее использовании нет необходимости держать весь массив в памяти. Остается интеграл, подсчет которого может занять некоторое время, но опять же можно делать свои внешние функции. Правда, для этого надо подучить какую-нибудь субд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:13 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyS.G.С такими данными, рано или поздно вам придется использовать СУБД. Для таких блобов (~75GB) СУБД нафиг не нужна. Только руками, только хардкор.очевидно, тут нет блоб-ов, как таковых, есть одни числа. да еще они относительно удобно сгруппированы для расположения их в нормальной форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:16 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUАндрей Игоревич, Правильно ли я понимаю, нужно каждый раз проходиться по всему массиву данных и выполнять определённого рода расчёты? Ну как нужно... Хотелось бы, естественно можно по разному решить одну задачу. Можно сразу сформулировать все задачи и разок пройтись. Но, как это часто бывает, новые задачи формируются только когда увидишь результаты решения предыдущих :). В общем я задачу понял, учить СУБД :). По мере возможности и наличия времени буду ковыряться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:32 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUАндрей Игоревич, Правильно ли я понимаю, нужно каждый раз проходиться по всему массиву данных и выполнять определённого рода расчёты? "великий оптимизатор" почуял жертву )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:33 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич, MSSQL с такими файлами справляется на раз, в считанные секунды. Хранимка обеспечит всю обработку. https://msdn.microsoft.com/ru-ru/library/ms188365(v=sql.120).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:33 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
GerasimenkoАндрей Игоревич, MSSQL с такими файлами справляется на раз, в считанные секунды. Хранимка обеспечит всю обработку. https://msdn.microsoft.com/ru-ru/library/ms188365(v=sql.120).aspx Oracle тоже ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:34 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
defecatorGerasimenkoАндрей Игоревич, MSSQL с такими файлами справляется на раз, в считанные секунды. Хранимка обеспечит всю обработку. https://msdn.microsoft.com/ru-ru/library/ms188365(v=sql.120).aspx Oracle тоже ! Вот поверишь, никогда не сомневался!? :) Даже FoxPro под DOS должен справится (но там импорт медленнее будет работать)... Вопрос, что есть в конторе у автора. А ведь у них наверняка что-то есть. ТС-у просто на профильном форуме нужно задать несколько вопросов, а не изобретать велосипед... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:38 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Gerasimenkodefecatorпропущено... Oracle тоже ! Вот поверишь, никогда не сомневался!? :) Даже FoxPro под DOS должен справится (но там импорт медленнее будет работать)... Вопрос, что есть в конторе у автора. А ведь у них наверняка что-то есть. ТС-у просто на профильном форуме нужно задать несколько вопросов, а не изобретать велосипед... ну так и я про то же намекнул )) ты вот MSSQL вдруг упомянул, я - Оракле. Масло масляное )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:41 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич, Обрати внимание на CachedTexts и CachedBuffers . Из всего предложенного - это самый производительный вариант Но да, лучше предварительно переводи текстовый файл в бинарный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:43 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:47 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
S.G.очевидно, тут нет блоб-ов, как таковых, есть одни числа. да еще они относительно удобно сгруппированы для расположения их в нормальной форме. Кто-же знал, что у автора файлы текстовые... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:51 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
S.G.Андрей Игоревич...Для примера что мне надо: Поиск ТВС, твэла, участка твэла с наибольшим флюэнсом (накопленной радиацией), по сути обычный интеграл(сумма) для конкретного участка от времени. Всевозможные зависимости плотностей потока от высоты, времени по каналу, времени для конкретной ТВС, по сечению. Поиск всяких максимумов и минимумов, перекосов. База данных справится с поиском/нахождением максимума/минимума лучше, чем свои собственные придумки. К тому же при ее использовании нет необходимости держать весь массив в памяти. Остается интеграл, подсчет которого может занять некоторое время, но опять же можно делать свои внешние функции. Правда, для этого надо подучить какую-нибудь субд. да, при таком уточнении задачи соглашусь - если загнать все в нормальную базу, остается чистый SQL - гибко и универсально. что хочешь то и ищи, как хочешь - так и агрегируй. Какую из бесплатных баз брать.... MsSqlServer Express или Postgress, как мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:51 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyS.G.очевидно, тут нет блоб-ов, как таковых, есть одни числа. да еще они относительно удобно сгруппированы для расположения их в нормальной форме. Кто-же знал, что у автора файлы текстовые... так автор написал, что текстовые 20918290 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:52 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakov Какую из бесплатных баз брать.... MsSqlServer Express или Postgress, как мне кажется. Firebird тоже пережует и не подавится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:53 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
В базу, мне кажется, всё всунуть и не мудрить. Postgress вполне подойдет, при том, что бесплатная. После конвертации из текста, скорее всего, станет меньше. Считать потом можно что угодно и как угодно - как придумаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 12:59 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
defecatorтак автор написал, что текстовые 20918290 Я описание задачи в первом сообщении читал. Там речь идёт о 10 ярдах чисел, одновременно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 13:02 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Да и FB, думаю. Важно понимать простую вещь. Что базы как раз для того и придуманы, что бы не городить гору кода самому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 13:05 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
makhaonЧто базы как раз для того и придуманы, что бы не городить гору кода самому. Позиционирование в типизированном файле это не гора кода, и работать будет ,скорее всего, быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 13:11 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, +1. А еще - простые решения как правило самые лучшие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 13:31 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Я так понял здесь две проблемы. Первая сформировать бинарник за адекватное время. Вторая работа с бинарником. Первое - относительно просто. Для второго, предложил бы сделать транслятор данных массива над буфферизированным потоком (коих хватает на просторах интернета), что тоже довольно простая задача. Вот правда среду бы посоветовал юзать с генерацией х64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39546672&tid=2041256]: |
0ms |
get settings: |
4ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 449ms |

| 0 / 0 |
