|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Aug 2009
Messaggi: 24
|
[JAVA] Ricerca su un file molto grande
Salve, devo realizzare una funzione di ricerca su un file molto grande (10MB), un filtro IP (un file dove sono memorizzati circa 250mila IP ordinati in ordine crescente). Qual'è il metodo più efficiente per trovare un ip senza caricare in memoria tutto il file? Avevo pensato ad una ricerca binaria direttamente sul file ma questo causa circa 20 accessi al file e quindi al disco per ogni ricerca, e ciò non va bene diciamo... Ho provato anche a caricare il file a pezzi in memoria sempre con una ricarca binaria voi che ne dite?
Grazie... ![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Sep 2010
Messaggi: 40
|
ovviamente stiamo parlando di file random e non sequenziali vero? beh penso che la cosa migliore sia caricartelo a pezzi in un buffer ed effettuare una ricerca dicotomica (o binaria) su ogni pezzo che carichi, se non trovi nulla scarichi quel buffer e lo riempi con altri record...penso che sia quello che hai detto tu con "Ho provato anche a caricare il file a pezzi in memoria sempre con una ricarca binaria"...altro non so, ora mi viene questo in mente, sicuramente è molto meglio di gestire il file direttamente
__________________
"Non so come io appaia al mondo, ma per quel che mi riguarda mi sembra di essere stato solo come un fanciullo sulla spiaggia che si diverte nel trovare qua e là una pietra più liscia delle altre o una conchiglia più graziosa, mentre il grande oceano delle verità giace del tutto inesplorato davanti a me." Isaac Newton (Philosophiae naturalis principia matematica) @ iPhone 4 16gb Nero ![]() |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Aug 2009
Messaggi: 24
|
Si random... io pensavo di caricare il pezzo centrale del file, effettuare una ricerca binaria, aggiornare gli indici e caricare un altro pezzo di file, superiore o inferiore al pezzo centrale se l'ip è minore o maggiore rispettivamente... intendevi anche tu così?
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Sep 2010
Messaggi: 40
|
si, potrebbe essere una soluzione adatta, prova ad implementarla e fammi sapere
![]()
__________________
"Non so come io appaia al mondo, ma per quel che mi riguarda mi sembra di essere stato solo come un fanciullo sulla spiaggia che si diverte nel trovare qua e là una pietra più liscia delle altre o una conchiglia più graziosa, mentre il grande oceano delle verità giace del tutto inesplorato davanti a me." Isaac Newton (Philosophiae naturalis principia matematica) @ iPhone 4 16gb Nero ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:06.