Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Limit zasobów przekroczony?, Fatal error: Maximum execution time of 0 seconds exceeded
kiler129
post
Post #1





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

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


Witajcie!
Mam nietypowy problem z php (IMG:style_emoticons/default/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ę? (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
darko
post
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ą
Go to the top of the page
+Quote Post
kiler129
post
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.
Go to the top of the page
+Quote Post
darko
post
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).
Go to the top of the page
+Quote Post
kiler129
post
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 (IMG:style_emoticons/default/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ść.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.12.2025 - 04:49