Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%)
|
Witajcie!
Skrypt który pisze ma dość specyficzne środowisko uruchomieniowe - nieco ponad 150Mhz procesora ARM i 80MB ramu. Początkowo wykonywałem komendę "tail -n 4 plik" jednakże w pętli jest to mało efektywne. Do tego stopnia, że dla 10 elementów zajmuje to ok 2 sekund (jest to nie do zaakceptowania w moim przypadku). Przez ostatnią godzinę krążę w kółko - fopen, fgets itp. Niestety nie wiem jak pobrać ostanie X linii z pliku. Pobranie z początku nie sprawia mi problemu:
Mogę co prawda użyć funkcji file() i pobawić się tablicą jednakże ładowanie do pamięci całego pliku (od 100KB do 1MB) nie ma nic wspólnego z wydajnością (IMG:style_emoticons/default/dry.gif) Czy któryś z kolegów może podać mi sposób na implementację funkcji tail w php? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%)
|
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%)
|
Tutaj masz odczytanie ile jest linii:
Wtedy będziesz mógł puścic pętle od $lines-10 do $lines. Niestety nie wchodzi to w grę - file() ładuje cały plik do pamięci jako tablicę co z góry odpada przy zasobach jakie posiadam. Udało mi się odgrzebać w swoich zbiorach taką funkcję a następnie lekko zmodyfikować:
Jednakże i ona ma swoje wady - te dwie pętle w sobie nie są zbyt wydajne. Ktoś na sali ma pomysł na optymalizację? |
|
|
|
kiler129 [PLIKI] Odczytanie X ostatnich linii pliku 21.09.2010, 23:02:44
Pilsener Musisz użyć fseek by poruszać się po pliku, już ra... 22.09.2010, 10:28:26 
kiler129 Cytat(Pilsener @ 22.09.2010, 11:28:26... 22.09.2010, 15:47:07
Pilsener CytatPodane przez ciebie rozwiązanie ma sens (i je... 23.09.2010, 12:41:09 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 17:44 |