|
|
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть следующая ситуация РС(i7 8Gb Win7 x64 + RAD XE3), приложения можно компилировать только в 32 разр. режиме - список грузит файл с диска Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. - при определенных условиях(не всегда) выскакивает ошибка: First chance exception at $7561C54F. Exception class EOutOfMemory with message 'Out of memory'. Process loader.exe (3736) в основном ошибка выскакивает при попытке загрузить в список файл размером в 300 мб с числом строк около 3 млн. при запуске программы, или выгрузить список обратно при выходе из программы. - список со строками совершенно необходим(стек со списком УРЛ для загрузки), хотя... Вопросы : 1. вообще эта проблема решаема для TStringList 2. если список не тянет, что еще можно использовать для загрузки-выгрузки милионов строк(до 500 символов в строке) из какого либо хранилища на ЖД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 23:10 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Pcrepair, используй СУБД, хотя бы самую простую. Не придется все сразу в память заливать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 23:17 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
SG требует память X2, т.е. 600 мб двумя НЕПРЕРЫВНЫМИ кусками. Ессно не всегда они есть.. я не верю, что прямо все эти строки одномоментно нужны либо воспользуйтесь выгрузкой в самую простую БД либо сами реализовывайте этот функционал с буфером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 23:20 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
krapotkin, SG несовсем понятно что это. строки нужны все. там идет выборка URL по случайному номеру строки, хотя можно ограничится числом тысяч в сто типа грузить в список не все три миллиона строк а первые сто тысяч и удалять их из файла а может использовать паскалевский метод чтения записи в файл, или в глубине списка оно и так используется? а какая СУБД самая простая, при этом чтоб работала без отказно. СУБД пока вообще никак не использовал ОРАКЛ не предлагать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 23:31 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Pcrepair... строки нужны все. там идет выборка URL по случайному номеру строки, хотя можно ограничится числом тысяч в сто типа грузить в список не все три миллиона строк а первые сто тысяч и удалять их из файла а может использовать паскалевский метод чтения записи в файл, или в глубине списка оно и так используется?... Пьяный, что ли. Поток бреда. Pcrepair... а какая СУБД самая простая, при этом чтоб работала без отказно. СУБД пока вообще никак не использовал ОРАКЛ не предлагать. Значит, никакая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 23:57 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
PcrepairВопросы : 1. вообще эта проблема решаема для TStringList 2. если список не тянет, что еще можно использовать для загрузки-выгрузки милионов строк(до 500 символов в строке) из какого либо хранилища на ЖД .. строки нужны все. там идет выборка URL по случайному номеру строки... 1. Если набор строк постоянный, то преобразовать строки в array[0.500] of char, сделать типированный файл и читать данные непосредственно из файла (seek, read, blockread) 2. C использованием обображение файла в память (filemapping) или другого метода буферизации обработать файл и построить вспомогательный массив со смещением и длиной, а чтение данных осуществлять с использованием этого массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 01:05 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Pcrepairстроки нужны все. там идет выборка URL по случайному номеру строки Для этой задачи все строки не нужны. Одной вполне достаточно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 01:27 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
А помимо всего прочего, XE3 - самая глючная в плане 'Out of memory'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 02:11 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
SG имелось в виду StringGrid а из смысла задачи вам нужно прочитать из файла N-ю строку а вовсе не все строки поэтому пользуйтесь TStreamReader. Он умеет читать построчно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 09:01 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
вообще там несколько списков точнее 5 до 300 мб все списки грузятся в ОЗУ (300+2+8+1)мб объем памяти растет до 1600 мб, после загрузки падает до 770 мб но на последнем списке(300 мб) начинается загрузка и тут сбой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 10:51 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 10:57 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
не, вот так лутше Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. влезло все три млн. строк, а потом еще раз столько же странно что никто из корефиев об этом даже не вспомнил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 16:23 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Pcrepairне, вот так лутше Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. влезло все три млн. строк, а потом еще раз столько же странно что никто из корефиев об этом даже не вспомнил Завтра у тебя будет не три, а десять миллионов. Все равно будешь все заливать в память? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 16:29 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
буду, хоть сто мульенов, память моя что хочю то и заливаю, но странно что ты об этом способе ничего не знаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 16:34 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Pcrepair, gStoreOutData - ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 16:37 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
да да это тот самый список тстренджлист, который хранит в себе все текстовые строки необходимые для работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 16:41 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Pcrepairбуду, хоть сто мульенов, память моя что хочю то и заливаю, но странно что ты об этом способе ничего не знаешь Глупыш, память - не твоя, память - приложения, и она не резиновая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 16:41 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Pcrepair... странно что никто из корефиев об этом даже не вспомнил Какой вопрос: Pcrepair... приложения можно компилировать только в 32 разр. режиме ... Exception class EOutOfMemory with message 'Out of memory' ... строк около 3 млн. Такие и ответы: решение пробемы нехватки памяти для 32-х разрядного приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 16:58 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
14.12.2017 16:23, Pcrepair пишет: > странно что никто из корефиев об этом даже не вспомнил Нормальный человек не будет затаскивать в память файл размером в сотни мегов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 17:19 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Pcrepair, котофеев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 17:23 |
|
||
|
Ошибка Out of memory при загрузке файла в TStringList
|
|||
|---|---|---|---|
|
#18+
Dim200014.12.2017 16:23, Pcrepair пишет: > странно что никто из корефиев об этом даже не вспомнил Нормальный человек не будет затаскивать в память файл размером в сотни мегов. да пусть тащит если хочет меньше конкурентов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 17:35 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39569755&tid=2041440]: |
0ms |
get settings: |
10ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
203ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 546ms |

| 0 / 0 |
