Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Limit zasobów przekroczony?, Fatal error: Maximum execution time of 0 seconds exceeded
kiler129
post 2.02.2011, 00:58:40
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


Witajcie!
Mam nietypowy problem z php smile.gif
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ę? smile.gif

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
Go to the top of the page
+Quote Post
darko
post 2.02.2011, 04:20:53
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ść:
  1. ini_set('memory_limit', '32M');


*) 32 niekoniecznie jest sensowną wartością


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
kiler129
post 2.02.2011, 14:57:30
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
Go to the top of the page
+Quote Post
darko
post 2.02.2011, 15:22:43
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.
Go to the top of the page
+Quote Post
kiler129
post 2.02.2011, 17:32:07
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 smile.gif
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
Go to the top of the page
+Quote Post

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: 24.06.2025 - 04:10