![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 19:03 |