powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как работать с очень большими масивами
25 сообщений из 315, страница 4 из 13
Как работать с очень большими масивами
    #39546728
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПозиционирование в типизированном файле это не гора кода, и работать будет ,скорее всего, быстрее.

Пока нужно по массиву пробежаться и просто сложить - то да. Но в его случае этим, скорее всего, не закончится. Аппетит приходит во время еды. Начнется сортировка, поиск, деление на группы, индексы и так далее. И то, что можно сделать простым запросом в пару строк в коде будет выглядеть довольно громоздко.
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546730
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatKazantsev Alexey,

+1.
А еще - простые решения как правило самые лучшие.

А я склоняюсь именно к БД. 1 раз пишется импорт данных - а дальше крути как хочешь - сервер тебе в этом только поможет. А с учетом разнообразных хотелок по извлечению данных и их анализу - простое решение вырастет в такого себе монстрика.
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546735
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

Нет, тако можно, но это как гвозди гидравлическим прессом забивать.
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546736
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
rgreatDarkMaster,

Нет, тако можно, но это как гвозди гидравлическим прессом забивать.
ты хочешь сказать, что БД с готовыми алгоритмами для задачи ТС не нужна ?
или я тебя не понял ?
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546745
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Далеко не обязательна.
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546751
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД хорош тем, что алгоритмы и индексацию можно масштабировать
Но когда речь идёт о терабайтах данных и алгоритмы предполагают последовательную обработку всех данных - СУБД будет существенно тормозить этот процесс. Тем более можно сделать пул потоков и обрабатывать массив сразу на нескольких ядрах.

Вопрос, на сколько прямая обработка данных будет быстрее СУБД. Я думаю раза в 2-3.
Но реальную цифру мы можем сказать только проведя реальные тесты
Поэтому предлагаю замутить тестовый открытый репозиторий на битбакете и проверить
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546753
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOUБД хорош тем, что алгоритмы и индексацию можно масштабировать
Но когда речь идёт о терабайтах данных и алгоритмы предполагают последовательную обработку всех данных - СУБД будет существенно тормозить этот процесс. Тем более можно сделать пул потоков и обрабатывать массив сразу на нескольких ядрах.

Вопрос, на сколько прямая обработка данных будет быстрее СУБД. Я думаю раза в 2-3.
Но реальную цифру мы можем сказать только проведя реальные тесты
Поэтому предлагаю замутить тестовый открытый репозиторий на битбакете и проверить
Что ты хочешь тестировать ?
очевидное-невероятное ?
Опять сел на своего любимого конька ?

Через СУБД будет медленнее,
но это будет компенсироваться гибкостью хранения, индексирования и готовыми механизмами анализа данных.
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546763
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorЧто ты хочешь тестировать ?

Как что?
Сформулируем несколько задач - и каждую из них прогоним
Автор, кстати, уже говорил, что ему нужен поиск твела/ТВС, суммирование данных
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546780
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUПоэтому предлагаю замутить тестовый открытый репозиторий на битбакете и проверить
Чем закончился твой предыдущий челендж с XML?
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546800
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Никому кроме меня не интересны реальные тесты. Все только языком чесать горазды )
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546809
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
02.11.2017 15:58, SOFT FOR YOU пишет:
> Никому кроме меня не интересны реальные тесты. Все только языком чесать горазды )


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546816
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUБД хорош тем, что алгоритмы и индексацию можно масштабироватьможно даже data mining/analytics устроить коробочными ср-вами
SOFT FOR YOUНо когда речь идёт о терабайтах данныхэто даже не особо и big data
SOFT FOR YOUТем более можно сделать пул потоков и обрабатывать массив сразу на нескольких ядрахраспараллелить разумеется можно и в бд
SOFT FOR YOUна сколько прямая обработка данных будет быстрее СУБДумеющий и любящий рукоблудить возможно и добьется а если не особо специалист то вероятно легче/удобнее будет освоить специализированный инструментарий/dsl
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546824
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavan,

Не факт, что у ТС сервер с ксеоном на 28 ядер и винтом на 3GB/s
Поэтому, не смотря на возможности, производительность такого решения с 1 минуты может возрасти до пары часов
Никто не говорит, что так нельзя. Я лишь говорю, что топорным методом (подобрав инструментарий) задача отработает за считанные секунды
Лично мне интересно проверить, какова разница по производительности
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546860
Как обычно: ТС "потерялся", а топик зафлудили
Андрей ИгоревичНу файлы по 2-3 гб, просто их до 20 штук. (Один файл - один год эксплуатации)
SOFT FOR YOU Лично мне интересно проверить, какова разница по производительности
Как предлогали ранее, текстовые файлы нужно перегнать в бинарные. А seek + blockread будет быстрее, чем выборка через СУБД
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546873
НезваныйГостьКак обычно: ТС "потерялся", а топик зафлудили
Андрей ИгоревичНу файлы по 2-3 гб, просто их до 20 штук. (Один файл - один год эксплуатации)
SOFT FOR YOU Лично мне интересно проверить, какова разница по производительности
Как предлогали ранее, текстовые файлы нужно перегнать в бинарные. А seek + blockread будет быстрее, чем выборка через СУБД

Ну я "потерялся" в том плане, что даже не знаю, что ответить на такие предложения. Мне бы для начала разобраться как всё это работает. Пока вот работы на работе подвалило - некогда, а дома сил уже не хватает :(. Дайте хоть неделю-две поковыряться в ваших предложениях :). Мне тут уже столько всего напредлогали. И классы, и многопоточная загрузка текста при помощи каких-то библиотек, и ещё куча всего, в чем я пока с трудом разбираюсь. А я ведь просто хотел подгрузить массив и способом "Фор И ту Ж ду" решить большинство интересующих меня задач. :)
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546875
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НезваныйГостьКак предлогали ранее, текстовые файлы нужно перегнать в бинарные. А seek + blockread будет быстрее, чем выборка через СУБД

Ну вот скажи мне плиз, как твои сверхбыстрые Seek/BlockRead справятся с задачей "найти первые 100 вхождений числа 1.23455" в диапазоне дат от .. до ..? Дело не в том, как быстро прочитать - с данными еще и работать нужно.
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546882
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Игоревич,

А ты по шагам разбей - решай задачи по мере их поступления. Я бы сделал следующее (ага, это я со своей колокольни) : выбрал бы СУБД (не ведись на Oracle и Postge - их еще готовить нужно уметь). Перегнал бы данные в БД и начал бы учить SQL (там реально все несложно) - считай, что 90% твоих задач уже можно решить с помощью уже готовых средств (sql-запросами). При возникновении конкретных проблем (при перегонке данных, тормозах при выборке и т.п.) - обращался бы сюда.
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546886
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
02.11.2017 17:28, Андрей Игоревич пишет:
> А я ведь просто хотел подгрузить массив и способом "Фор И ту Ж ду" решить большинство интересующих меня задач. :)

я ж сказал чем это можно сделать: Compaq Array Visualizer.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39546921
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ИгоревичА я ведь просто хотел подгрузить массив и способом "Фор И ту Ж ду" решить большинство интересующих меня задач. :)

Для начала тебе нужно решить, все свои алгоритмы ты будешь проверять на бинарных данных или на текстовых?
Если на текстовых, можно так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
var
  Reader: TByteTextReader;
  Value: Single;
begin
  Reader := TByteTextReader.CreateDefaultFromFile(FileName);
  try
    while (no Reader.EOF) do
    begin
      Value := Прочитать значение из ридера
      ...
    end;    
  finally
    Reader.Free;
  end;
end;



Если бинарные данные, то по простому можно так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
var
  Reader: TCachedReader;
  Value: Single;
begin
  Reader := TCachedFileReader.Create(FileName);
  try
    while (no Reader.EOF) do
    begin
      Reader.ReadData(Value);
      ...
    end;    
  finally
    Reader.Free;
  end;
end;
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39547058
DarkMasterНу вот скажи мне плиз, как твои сверхбыстрые Seek/BlockRead справятся с задачей "найти первые 100 вхождений числа 1.23455" в диапазоне дат от .. до ..?
Никак. Первоначальный вопрос ТС: "Как работать с массивом около 10 миллиардов (1е10) значений типа реал". Дальше ТС уточнил: "...по сути обычный интеграл(сумма) для конкретного участка от времени. Всевозможные зависимости плотностей потока от высоты, времени по каналу, времени для конкретной ТВС, по сечению. Поиск всяких максимумов и минимумов, перекосов."
Придуманной задачи о вхождении и диапазона дат не ставится, хотя циклы и операторы сравнения никто не запрещал и не отменял .
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39547063
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да чё вы мозги полощите
Давайте тесты в студию :)
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39547169
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НезваныйГостьПридуманной задачи о вхождении и диапазона дат не ставитсяАндрей Игоревичновые задачи формируются только когда увидишь результаты решения предыдущих
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39547279
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторюсь. Аппетит приходит во время еды. А тут уже всё написано. И что бы аппетит удовлетворить приходится всё переписывать с нуля. И кому это нужно? :)
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39547434
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterАндрей Игоревич,

А ты по шагам разбей - решай задачи по мере их поступления. Я бы сделал следующее (ага, это я со своей колокольни) : выбрал бы СУБД (не ведись на Oracle и Postge - их еще готовить нужно уметь). Перегнал бы данные в БД и начал бы учить SQL (там реально все несложно) - считай, что 90% твоих задач уже можно решить с помощью уже готовых средств (sql-запросами). При возникновении конкретных проблем (при перегонке данных, тормозах при выборке и т.п.) - обращался бы сюда.

А как лучше спроектировать схему данных.... Для меня вот неочевидно.

получается, что основная табличка что-то вроде

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

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

чтобы комфортно крутить данными. Я такую прикидку не возьмусь сделать....
...
Рейтинг: 0 / 0
Как работать с очень большими масивами
    #39547456
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir BaskakovЯ такую прикидку не возьмусь сделать....

Есть у нас тут один специалист. Большой знаток оптимизаций в БД и вообще СУБД :)
...
Рейтинг: 0 / 0
25 сообщений из 315, страница 4 из 13
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как работать с очень большими масивами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]