Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Co jest lepsze, wydajniejsze?
M@k
post 23.03.2011, 09:09:20
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 28.04.2005

Ostrzeżenie: (0%)
-----


Witam

Mam taki pytanko, co lepiej wybrać przy dość częstym liczeniu linii z pliku?
Nasuwają mi się te dwie metody:

1.
if($fh = fopen('file', 'r')) {
while($chunk = fread($fh, 8192)) {
$liczba_lini += substr_count($chunk, "\n");
}}

2.
$chunk = @shell_exec('wc -l file');
preg_match("/(.*?) \/home(.?)/",$chunk ,$czesc);
$liczba_lini = $czesc[1];

I teraz nie wiem która jest wydajniejsza, mniej obciążająca serwer pamięć itp

Wydaje mi się ze metoda druga, ale nie wiem jak to z częstym wychodzeniem z php czy to nie spowalnia i nie katuje serwera.

A może ktoś zna jeszcze inna metodę?

Z niecierpliwością czekam na odpowiedz i pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redeemer
post 23.03.2011, 10:32:58
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Mi wyszło zupełnie co innego. Pętla 100 razy, plik: dump sql, 3351 linii, ~59MB. Skrypt uruchamiany z konsoli.

fread: 4.02844
wc -l: 1.77387


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 19:03