Aktywne Wpisy

Vladimis +192
K---a jak żyć w tym kraju.
Moja matula kupiła używane auto i przez to, że jeszcze było ubezpieczone na poprzedniego właściciela to ubezpieczalnia nie poinformowała o końcu OC a jej się miesiące pomyliły i cyk będzie 8600 cebulionów kary, czyli ""2 miesiące minimalnej" a w realiach praktycznie 3 bo podatki.
Kobieta która przez całą karierę kierowcy w najgorszym wypadku przytarła lakier albo doprowadziła do małego wgniecenia dostaje większą karę od kogoś kto
Moja matula kupiła używane auto i przez to, że jeszcze było ubezpieczone na poprzedniego właściciela to ubezpieczalnia nie poinformowała o końcu OC a jej się miesiące pomyliły i cyk będzie 8600 cebulionów kary, czyli ""2 miesiące minimalnej" a w realiach praktycznie 3 bo podatki.
Kobieta która przez całą karierę kierowcy w najgorszym wypadku przytarła lakier albo doprowadziła do małego wgniecenia dostaje większą karę od kogoś kto

źródło: 1000020246
Pobierz




No dobra, dzisiaj muszę pobrać ze dane ze strony. Uzywam #symfony2 i #goutte
Mam już wszystko gotowe, skrypt działa i w ogóle. Problem jest taki że strona ma ogromną ilość podstron.
Np
Lista elementów:|- Lista obiektów:
|- spis
|- spis
|- spis
|- Lista obiektów:
|- spis
|- spis
|- spis
|- Lista obiektów:
|- spis
|- spis
|- spis
więc wychodzi tego naprawdę dużo. Problem mam taki że na początku skrypt w miarę fajnie leci, i ETA wychodzi około 2h. Ale po 20 minuach wzrazta już do 3h a po kolejnych do 7 i tak dalej..
Zrobiłem taki myk:
$em = $this->getContainer()->get('doctrine')->getEntityManager();$em->getConnection()->getConfiguration()->setSQLLogger(null);
Ale niewiele to dało... Przez przeglądarkę strona mi się odpala od strzału, nie ma żadnej zadyszki ani nic... tylko skrypt zwalnia..
Na końcu pętli mam
persisty iflushCo jeszcze mogę zrobić?
Dodam że skrypt jest napisany w #symfony2 pod konsolą (command).
$entityManager->detach($object);Wtedy Garbage Collector będzie mógł od razu je zgarnąć i posprzątać, w innym przypadku siedzą w pamięci niepotrzebne obiekty.
edit: ewentualnie po flushu zrób $em->clear(); który detachuje wszystkie obiekty w EM
@DanioPL: ale gdzie to odpalic? Swój skrypt odpalam tak:
php app/console nazwa:metoda parametr. Na końcu mam dodać-e prod?php app/console cache:warmup --env=prodprzed wykonaniem komendy. Znacznie przyspiesza całość aplikacji.Tak jak koledzy wyżej pisali, wykorzystaj funkcję detach() i clear(), dodatkowo po zapisaniu możesz robić unset($obj)
Obecnie mam tablicę obiektów i odwołuję się w niej tak:
foreach( range( 0, count($arr) as $num ) {$arr[$num] <- mój obiekt
}
Poniżej masz kawałek przykładowego kodziku w jaki sposób możesz uniknąć ładowania danych do arraya i iterowania później po tym. Tablice w PHP zjadają bardzo dużo pamięci, dopiero w PHP 7 będzie to znacznie zoptymalizowane. Ciężko mi się wypowiedzieć bo nie widzę tego co masz napisane. W każdym razie powyciągane (nie wiem skąd) obiekty ładujesz sobie do kolekcji, a jak już masz wszystko to robisz sobie
foreach($objectCollection->getIterator() as
co w przypadku gdy mam np.
ManyToOnei obiekty:Dzień,TypDnia$d1 = newJeżeli mam kolekcję. Jak mogę z niej pobrać konkretny obiekt z pominięciem foreach?
Załóżmy że mam obiekt Miasto oraz obiekt NazwaMiasta
Obiekt Miasto posiada ID z NazwaMiasta.
W przypadku tablic zrobiłbym