![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie!
Mam nietypowy problem z php ![]() Napisałem kod który porównuje 2 katalogi i wyciąga różnie pakując w diff-paczke. Problem polega na tym, że przy małych ilościach danych działa poprawnie, przy dużych się wysypuje z dość ciekawym błędem: Kod Fatal error: Maximum execution time of 0 seconds exceeded in /root/_PACKER-TESTER/core/diff.class.php on line 67 Linia 67 to wbudowana w php funkcja in_array() [if(in_array($path, $oldTree["files"]))], wydaje mi się, że przekraczam ilość CPU bo użycie pamięci jest na poziomie 2-3MB. Czy to bug czy ja coś źle robię? ![]() Log: Kod ne0:~/_PACKER-TESTER# php create.php
Warning: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0 Starting build compare Creating tree of ./TEST/linux-2.6.35.9 Creating tree of ./TEST/linux-2.6.38-rc3 Searching for added or changed files Progress: 28639/35866 Fatal error: Maximum execution time of 0 seconds exceeded in /root/_PACKER-TESTER/core/diff.class.php on line 67 Ten post edytował kiler129 2.02.2011, 00:59:17 -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zwiększ przydział pamięci dla skryptu ustawiając jakąś sensowną*) wartość:
*) 32 niekoniecznie jest sensowną wartością -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
To też odpada, próbowałem. W sumie i tak w pamięci nie mam dużo danych, podczas liczenia jest to tablica z listą 32 tys plików która nie zajmuje dużo, podczas pakowania dodatkowo php musi pamiętać 2 chunki danych po max 20KB.
-------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To spróbuj przez .htaccess, jeśli tak nie działa, musisz zwiększyć tę wartość, innego wyjścia z tej sytuacji nie ma (oprócz optymalizacji samego skryptu php).
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Program odpalam z konsoli więc to nie to
![]() Optymalizować też się za bardzo nie da bo najwięcej czasu zajmuje in_array() szukający ścieżki w tablicy ścieżek (zapisane jako stringi). Problem jednak rozwiązałem. Okazuje się, że bug występuje w PHP kompilowanym z obsługą litespeed (lsapi), wtedy php czyta dodatkowo zmienną środowiskową LSAPI_MAX_PROCESS_TIME która domyślnie ma wartość 300 sekund rzeczywistych (nie cpu). Wystarczy odpalić z binarki CLI i problem znika lub ustawić LSAPI_MAX_PROCESS_TIME na większą wartość. -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 04:10 |