|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.02.2013, 15:32 | #11 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
И тоже много раз. Можно попробовать заставить его выделить сразу много. Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
26.02.2013, 17:42 | #12 |
Пользователь
Регистрация: 23.04.2011
Сообщений: 42
|
Да, эту инфу я тоже нашел вчера поздно вечером.
В общем как я понял из всего происходящего - дело именно в самой Dictionary, которая вообще не может хранить много ключей как таковых. При этом если честно не совсем понятно - почему же она в какие-то моменты становится на это способной? Но это все мусор и бред, т.к. стабильности не добиться. Есть у меня вариант и проще по памяти - основанный не на записях, а на классах, когда точки хранятся в листе (нет проблем и для моих 34 млн), а в качестве ключа генерится простой хэшкод. Там происходит все немного иначе - из листа, в котором уже есть все точки, удаляются ненужные. Выпадает Out of Memory именно на заполнении Dictionary, примерно на 3 млн. - специально вчера проверил: Код:
Будет время - попробую на БД, потом отпишусь как результат. |
12.03.2013, 13:52 | #13 |
Пользователь
Регистрация: 23.04.2011
Сообщений: 42
|
Что самое прикольное - прога отлично заработала при компиляции 64-битным компилятором... спокойно обрабатываются файлы более гигабайта...
|
12.03.2013, 14:56 | #14 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
у тебя 2 буфера зачем? чтение позаписьно медленно?
Код:
Не стесняемся, плюсуем!
|
12.03.2013, 15:16 | #15 |
Пользователь
Регистрация: 23.04.2011
Сообщений: 42
|
Я специально для экспериментов вынес размер буфера в переменные и задаю его из отдельного поля.
Если читать по одной записи, то чтение файла 655 Мб и прогон в Dictionary проходит за 34757 мсек. Если читать по 1000 записей за раз, то такая же операция проходит за 10983 мсек. Если по 10000, то 9422 мсек. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Load exe into memory and run it from memory | artush1984 | Win Api | 10 | 06.02.2012 18:43 |
Правильная работа с формами | CodeNOT | PHP | 5 | 12.04.2011 12:34 |
Правильная работа скрола в панели. | evilgeniuz | Общие вопросы .NET | 0 | 29.09.2010 00:17 |
Правильная работа условия if | Andruha10 | PHP | 1 | 22.08.2010 21:23 |
Не правильная работа for .. to | Neptunium | Общие вопросы Delphi | 7 | 05.04.2010 00:32 |