Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony/Doctrine], Powolne działanie!!!
rsobczuk
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kraków

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


Witam ponownie,
no im więcej się programuje, tym więcej wychodzi kwiatków...
Ostatnio próbowałem w Symfony wczytać do bazy danych uploadowany plik CSV. Oczywiście upload się powiódł, ale problem polega na tym, że wczytała się tylko około połowa z 8000 wierszy pliku CSV.
Co może być powodem tego?
Używam PHP Doctrine. Symfony w najnowszej wersji 16 - Doctrine chyba też mam najnowsze.
Po uploadzie pliku, stronka rzeźbi, rzeźbi... rekordów w bazie przybywa, po czym po jakimś czasie wyskakuje biała strona i tyle - bez żadnych błedów - nawet w trybie dev - wszystko po mniej więcej 1 min 5sek do 1min 30 sek (mierzyłem kilka razy).

Czy symfony ma jakiś timeout? O co wogóle chodzi? Zrobiłem to tak, że wczytuję plik csv i każdą linię explode'uje z `,` jako separator i buduje zapytanie (poprzez funkcje modelu - prosty insert) i w pętli uruchamiam.

Niestety na obecną chwilę musiałem to zmodyfikować, żeby ruszyć z projektem i napisałem zwyczajnie w PHP skrypt odpalany z konsoli z parametrami i w Symfony odpalam go poleceniem exec.

Czy Symfony+Doctrine jest na tyle `kijowe`, że nie radzi sobie z długo wczytującymi się stronami?

Dodam jeszcze, że skrypt PHP - odpalany nawet przez stronkę robi takie coś w mig.... 5 sek, 10 sek... a w Symfony po półtorej minuty wczytała się połowa rekordów i wygenerowała się pusta strona...

Dzięki
Rafał
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rsobczuk
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kraków

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


OK. Jakaś tam wskazówka jest. Faktycznie tworzę nowy obiekt typu NowyWiersz, ustawiam jego właściwości i zapisuję... i tak kilkanaście tysięcy razy. Czy mam użyć jakiegoś destruktora po zapisaniu obiektu w bazie? Poproszę o jakąś dodatkową wskazówkę?

Funkcja wygląda mniej więcej tak:

  1. <?php
  2. $pNewRow = new NowyWiers();
  3. $pNewRow->par1 = 'aaa';
  4. $pNewRow->par2 = 'bbb';
  5. $pNewRow->par3 = 'ccc';
  6. $pNewRow->save();
  7. ?>


Przypomniałem sobie, że nie jest to funckja modelu, tylko zawarłem to we fragmencie `action`, ale to nie ważne.

Tak naprawdę nie ja zdecydowałem się użyć Doctrine. W pracy takiego czegoś używają, bo Propel nie obsługuje enum... (podobno) - prawda to?
Nie ważne... Zależy mi na tym, żeby rozwiązać problem tego zapisywania.

set_time_limit ustawiłem dość duży - 3 minuty... Co do pamięci to nie zmieniałem tego parametru. Zrobię to jak tylko będę mógł i dam znać na forum. Mimo wszystko Symfony pracuje baaaaardzo powoli przy czymś takim.

Dzięki
RS

Ten post edytował rsobczuk 9.07.2008, 16:04:56
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 19:02