![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 5.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Do tej pory wyciągałem 10 różnych danych ze strony za pomocą preg_match (_all) i zapisywałem do bazy danych , po paru poprawkach w kodzie dla 25 stron długość wykonywania skryptu trwa ok. 70 sec. Niestety takich stron mam do sprawdzenia 530~ więc to trochę trwa.
I tu się rodzi pytanie czy w innym języku da się zrobić to dużo wydajniej? Słyszałem o czymś takim jak pobieranie równoległe w jquery+ajax , jednak nigdy nie miałem z tymi językami doczynienia więc nie wiem z czym to się je. Wujek google zawsze na posterunku tylko nie wiem czego mam szukać , więc proszę o wszelkie wskazówki. Język , nazwy bibliotek/funkcji, cokolwiek. |
|
|
-Gość- |
![]()
Post
#2
|
Goście ![]() |
O ile nie robisz naprawde bardzo, bardzo skompikowanych regexpow nie jestes w stanie preg_matcha zajechac na 70 sekund na tak malym zestawie danych. Problemem weic nie jest jexzyk, bo kazdy sposob pobiera dane mniejwiecej tak samo szybko (i tak zapewne przez cURLa), a raczej serwer z ktorego pobierasz dane jest poprstu wolny. Lub może używasz do tego tora? W pierwszym przypadku nic juz z tym nie zrobisz, w drugim zainteresuj sie tym, lub innymi rozwiazaniami (nie tak trudno jest napisac swoje).
Napisz wiecej info to poradzę więcej. |
|
|
-Gość- |
![]()
Post
#3
|
Goście ![]() |
Jezeli anprawde podejrzewasz ze tak dlugo rzeźbią się same regexpy , a nie dane z serwera to pokaż próbkę
![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 5.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
W skrócie : pobiera 2 linki z bazy danych , wyciąga dane z tych linków , zapisuje spowrotem do bazy. I tak dla 12 osób kod wykonuje się średnio 70 sec. Pocięłem troche kod i okazało się że pobranie tej strony : zajmuje 80% (!) czasu całego wykonywania kodu, ma ona 23tys. linijek kodu jak sprawdziłem. Da się jakoś wyciągać dane bez pobierania całej? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 280 Pomógł: 20 Dołączył: 12.12.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast używać wyrażeń regularnych skorzystaj z obiektu dom (dane wczytaj jako HTML) oraz xpatha do wyszukiwania danych.
http://php.net/manual/en/simplexmlelement.xpath.php -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Do tej pory wyciągałem 10 różnych danych ze strony za pomocą preg_match (_all) i zapisywałem do bazy danych , po paru poprawkach w kodzie dla 25 stron długość wykonywania skryptu trwa ok. 70 sec. Niestety takich stron mam do sprawdzenia 530~ więc to trochę trwa. I tu się rodzi pytanie czy w innym języku da się zrobić to dużo wydajniej? Słyszałem o czymś takim jak pobieranie równoległe w jquery+ajax , jednak nigdy nie miałem z tymi językami doczynienia więc nie wiem z czym to się je. Wujek google zawsze na posterunku tylko nie wiem czego mam szukać , więc proszę o wszelkie wskazówki. Język , nazwy bibliotek/funkcji, cokolwiek. W js da się, ponieważ są tam funkcje działające asynchroniczncie. Ale w w curl, który jest w php, też można pobierać kilka plików równolegle. To na pewno może przyspieszyć ich ściągnięcie. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:06 |