Mi stavo chiedendo se qualcuno di fuori sapeva come farlo in PHP. Sto eseguendo uno script che comporta l'apertura di un file, prendendo le prime 1000 righe, facendo alcune cose con quelle righe, quindi il file php apre un'altra istanza di se stesso per prendere le mille righe successive e così via fino a raggiungere la fine del file . Sto usando splfileobject in modo che possa cercare una determinata linea, il che mi consente di suddividerlo abbastanza bene in 1000 pezzi. Il problema più grande che sto avendo è con le prestazioni. Ho a che fare con file che hanno più di 10.000.000 di righe e mentre fa le prime 10.000 linee o giù di lì abbastanza velocemente, dopo quel punto c'è un enorme rallentamento esponenziale che penso sia giusto dover cercare fino a quel momento.Elimina le prime X righe da un file PHP
Quello che mi piacerebbe fare è leggere le prime mille righe, quindi cancellarle dal file in modo che il mio script legga sempre le prime mille righe. C'è un modo per farlo senza leggere il resto del file in memoria. Altre soluzioni che ho visto riguardano la lettura di ogni riga in un array, quindi la rimozione delle prime voci X, ma con dieci milioni di righe che consumeranno troppa memoria e tempo.
Se qualcuno ha una soluzione o altri suggerimenti che potrebbero velocizzare le prestazioni, sarebbe molto apprezzato.
Si * pensa * che il tempo è in cerca di tempo? – salathe
Ho commentato la riga che itera il contatore di riga in modo che eseguisse sempre il primo 1000 e fosse eseguito in modo esponenziale più veloce.Inoltre, questo rallenta esponenzialmente man mano che procede, l'unica cosa che sta cambiando è la linea che sta cercando. –
La ricerca non dovrebbe richiedere * in modo esponenziale * più tempo. Su che tipo di scala è il rallentamento? – salathe