|
|
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
он же Боюсь, основы плохо знакомы. Иначе вы не говорили бы, что 3.5 сек (моё решение) и 5.8 сек (BufferedReader) - это одинаковая скорость. И это в случае уже закэшированного виндой файлика. Если обрабатываем с чтением, то цифры: Proceed 290374304 bytes records in 11031 msec with 6178176 failures Proceed 287888895 buffered bytes in 26422 msec with 2537871 failures Только тут не совсем честно, т.к. файлы совершенно произвольные. - на одном и том же файле с данными размером 500Мб (искомые данные в последней строке), Ваш вариант поиска дал 18266 мс, а заметно более простой код с использованием BufferedReader и метода startsWith для поиска вхождения в строку, дал 25610 мс. Разница в быстродействии около 30% (хотя сознаюсь, я и такой не ожидал), а в сложности кода 3-х кратная. На всякий случай приведу пример кода (хотя он совершенно тривиальный), чтобы не было разночтений: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 14:53:55 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
(' 1234567 ').startsWith != (' 1234567 8899').substring(0,9).trim() Хотя может автору это и не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 14:59:03 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
!= - это конечно означает "не равны" (не равны методом equals) :) чтобы не было разночтений :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 15:00:14 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
он же!= - это конечно означает "не равны" (не равны методом equals) :) чтобы не было разночтений :) - это был один из тезисов: "оптимизировать работу с текстом" :) - изначально сравнение производил на Windows 2000 диск SATA: Код: plaintext 1. 2. - решил проверить на Linux FC4 и SATA RAID 1 (процессоры и материнские платы на сравниваемых машинах одинаковые) и получил интересный результат: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 15:16:55 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
Kachalov Код: plaintext 1. 2. Усредненное из 3-5 попыток? Или после перезагрузки и принудительной очистки файла подкачки? Если сразу же друг за другом - эксперимент не выдерживает никакой критики :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 16:34:58 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
он же Если сразу же друг за другом - эксперимент не выдерживает никакой критики :) - 3 попытки по очереди для каждого примера, т. е. пример1-пример2-пример1-пример2 и т. д. - усреднять не стал, взял не крайние значения - Linux сервер рабочий, средне нагруженый, паралелльно с тестами работал web-сервер и БД что, я думаю, хорошо отражает реальные условия работы. - если не лень погоняйте примеры сами на разных машинах, а то как цифры не нравятся, так "эксперимент не выдерживает никакой критики", а как получается удобный результат, так никаких вопросов о качестве тестов не возникает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 16:59:37 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
Kachalov - если не лень погоняйте примеры сами на разных машинах, а то как цифры не нравятся, так "эксперимент не выдерживает никакой критики", а как получается удобный результат, так никаких вопросов о качестве тестов не возникает :) Я не сомневаюсь в своих тестах, т.к. сам их проводил :) А про вас мне ничего не известно. Может вы злой и хитрый Ладно, что-то отклонились от темы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 17:21:39 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
http://forum.java.sun.com/thread.jspa?threadID=476507&tstart=60 искать в тексте слова: public class searcher ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 17:48:14 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
сборник реализаций поиска: http://www.ccs.neu.edu/home/gassko/Courses/CSG113/PROJECTS/Searching/IndexSearch.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 17:52:24 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
Kachalov он же!= - это конечно означает "не равны" (не равны методом equals) :) чтобы не было разночтений :) - это был один из тезисов: "оптимизировать работу с текстом" :) - изначально сравнение производил на Windows 2000 диск SATA: Код: plaintext 1. 2. - решил проверить на Linux FC4 и SATA RAID 1 (процессоры и материнские платы на сравниваемых машинах одинаковые) и получил интересный результат: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 22:15:20 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
SolaroidГде взять стомегабайтный файл? И что вы в нем ищете? - думаю это вопрос не ко мне :) посмотрите на первое сообщение в теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 00:08:00 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
Solaroid Kachalov он же!= - это конечно означает "не равны" (не равны методом equals) :) чтобы не было разночтений :) - это был один из тезисов: "оптимизировать работу с текстом" :) - изначально сравнение производил на Windows 2000 диск SATA: Код: plaintext 1. 2. - решил проверить на Linux FC4 и SATA RAID 1 (процессоры и материнские платы на сравниваемых машинах одинаковые) и получил интересный результат: Код: plaintext 1. 2. 100М это средний файлик, есть еще и 150-200М, записи в них не большие, но их много (150М окло 3,5 млн.записей) и это объем данных за один день, а искть нужно в данных за месяц... Дело в том, что хранить данные записи файлов (это телефония) в данный момент в БД возможности нет, поэтому реализован поиск в файлах (которые с сетевого ресурса замапены на никс). На данный момент самое быстрое найденное решение (для моего случая работы с БД Оракле) - это использование sqlloadera и с установкой фильтра в ctl-файле (да простят меня те, кто не работает с Оралке) Тема разумеется еще не закрыта - буду копать дальше в сторону Java, но уж больно Оракле заточил хорошо свой SQLLOADER, боюсь в данном случае это будет самым оптимальным решением. Большое спасибо ВСЕМ, кто принял и примет участие! ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 07:43:33 |
|
||
|
быстрый поиск в файле
|
|||
|---|---|---|---|
|
#18+
Гость1111 100М это средний файлик, есть еще и 150-200М, записи в них не большие, но их много (150М окло 3,5 млн.записей) и это объем данных за один день, а искть нужно в данных за месяц... Дело в том, что хранить данные записи файлов (это телефония) в данный момент в БД возможности нет, поэтому реализован поиск в файлах (которые с сетевого ресурса замапены на никс). Индексы стоить для файлов и класть рядом не пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 19:18:43 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34098513&tid=2145998]: |
0ms |
get settings: |
12ms |
get forum list: |
17ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
60ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
83ms |
get tp. blocked users: |
3ms |
| others: | 282ms |
| total: | 490ms |

| 0 / 0 |
