|
|
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:26 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
НяшикVladimir Baskakov, Отработало. Hello, world. 4.00000000000000E+0001 В диспетчере память - 5.7 мб Дабавим полное заполнение, for и ошибка Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. так - у меня - не падает. Фри паскалю никаких флагов не ставил, без понятия во что компилит. 8*200000000 - так - упадет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:31 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakov, Никогда не пиши цифры. Лучше пиши так Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:34 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakov8*200000000 - так - упадет. Обычный SetLength(doubles, 200000000); прекрасно отрабатывает на XP-виртуалке с 1Gb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:35 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyVladimir Baskakov8*200000000 - так - упадет. Обычный SetLength(doubles, 200000000); прекрасно отрабатывает на XP-виртуалке с 1Gb. Чисто для чистоты эксперимента, я речь вел о двух таких массивах. :). А вообще хз, у меня через раз нормально работает. Почему - пока не понял :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:37 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. такой код падает при заполнении второго массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:46 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakov, У меня норм отработало Лучше сделай Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:51 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
А можно еще так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:53 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyVladimir Baskakov8*200000000 - так - упадет. Обычный SetLength(doubles, 200000000); прекрасно отрабатывает на XP-виртуалке с 1Gb. FPC - работает Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. падает Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. вин 7-64 - 4 гига ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:55 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Няшик writeln(SIZEOF(Real)); я делал, 8. но у меня не делфя - раз, флаги компилятора не выставлены - два. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:57 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyАндрей Игоревичпрограмма вылетает (правда уже без краша компилятора) с формулировкой нет доступа к какой-то там ячейке памяти Значит где-то косячишь с индексом/обращаешься к неинициализированной переменной. Ага, и правда косячил (забыл что динамический массив с 0 начинается), присваивал "1" и "2", вместо "0" и "1", так что конкретно эта задача решена, прошу простить за невнимательность. Правда почему со статическим массивом не дает работать или крашится, всё равно не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:58 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичЧисто для чистоты эксперимента, я речь вел о двух таких массивах. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 12:59 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичKazantsev Alexeyпропущено... Обычный SetLength(doubles, 200000000); прекрасно отрабатывает на XP-виртуалке с 1Gb. Чисто для чистоты эксперимента, я речь вел о двух таких массивах. :). А вообще хз, у меня через раз нормально работает. Почему - пока не понял :). Поделите массив между несколькими запусками программы - map-reduce, однако, бигдэйта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:01 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
...виртуалка с 2Gb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:01 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичПравда почему со статическим массивом не дает работать или крашится, всё равно не понятно. Вероятно есть ещё какие-то косяки, пока не обнаруженные ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:03 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakovпадает Проверил на fpc 3.1.1. работает и под линуксом и под вайном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:07 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyVladimir Baskakovпадает Проверил на fpc 3.1.1. работает и под линуксом и под вайном. у меня нет кросскомпайлера -> 64. возможно - ограничение 32-разрядной программы. версия 3.0.2 i386w32 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:16 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Виртуалка с 2Gb и 4 массива (6.1Gb). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:18 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakovвозможно - ограничение 32-разрядной программы Если учесть, что по дефолту у 32-битного процесса адресное пространство всего 2Gb, то не удивительно, что при выделении таких объёмов можно легко налететь на его нехватку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:20 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyВиртуалка с 2Gb и 4 массива (6.1Gb).Долго диском шуршало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:25 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey(6.1Gb) Пардон, 5.9Gb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:26 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
rgreatДолго диском шуршало? Неа :) Этож виртуалка, у неё хостовый кеш для дисковых операций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 13:27 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Это опять я. Наверно данные вопросы можно задавать и в разделе Огнептицы, но связанны они всё с теми же большими массивами в том же Делфи, да и тут всё свои, советов надавали, теперь надо разобраться :). В БД я понимаю почти ничего, так что сильно прошу не унижать. В общем с разной степенью успешности попробовал разные БД и СУБД, остановился на InterBase с Firebird (а почему нет). И возникли следующие вопросы/проблемы: Общие: 1. Какие вообще БД можно использовать без поднятия сервера для указанных выше задач (массивы с 10кккк значений)? Если БД которые не требуют вообще никакой установки на "клиентском" компьютере, ну или отделаться одним фалом типа .ддл? Просто на основном рабочем компьютере абсолютный минимум прав, а дергать админа ради установки сервера., ну такое. 2. Какие БД можно подключить к 64 битному приложению на делфи? Ну и как это сделать Огнептицей (при переключении ругается)? По FireBird. 1. Банальный вопрос: как очистить файл БД? Код: plsql 1. удаляет значения, но не очищает базу, не знаю что там хранится (логи, резерв, история), но как очистить файл? 2. Серьёзный вопрос: запредельно медленное для моей задачи заполнение таблицы. Через процедуру в IBE массив в 500к значений заполняется единицами за 580 секунд, через прямую SQL команду за 500 секунд: код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Что при заполнении массива в 10кккк значений потребует всего-то 3-4 месяца. Можно, конечно, распараллелить и ждать всего-то месяц, но как-то что-то хз... Ну и вопрос: что я делаю в данном коде не так? Как можно ускорить заполнение (ну там транзакции по другому проводить или ещё чего)? 3. Перевод числа в строку в Делфи и обратно в СУБД значительно влияет на время? Или мелочь, в сравнении с чем-то другим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 14:51 |
|
||
|
Как работать с очень большими масивами
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич1. Банальный вопрос: как очистить файл БД? Удаляй файл, пересоздавай базу. Андрей ИгоревичЧерез процедуру в IBE массив в 500к значений заполняется единицами за 580 секунд, через прямую SQL команду за 500 секунд: Это из-за транзакций. Их стоит дергать чуть реже. Например на каждые 10 тыс строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2018, 14:54 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39590860&tid=2041256]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
192ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 519ms |

| 0 / 0 |
