Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zwiększyć zasobożerność kodu php?
Forum PHP.pl > Inne > Hydepark
Grandalf00
Napisałem kod, który tworzy zadaną liczbą tablic z 15500 elementami. Muszę porównać każdy element ze sobą więc jak wiadomo, tych porównań będzie 15500*liczba tablic. Wszystko to robie hobbystycznie i szukam sposobu jak przyśpieszyć działanie kodu. Testy robie na xamppie. Niestety nie wykorzystuje on w pełni możliwości mojego komputera (8rdzeni, 8GB RAM) i w moim przypadku dwie tablice to kilkanaście minut oczekiwania na wyniki.

Czy da się jakoś ustaić xamppa czy może coś zmienić w php.ini aby chętniej sięgał po zasoby komputera? Chciałem kod przerzucić na swój serwerek, ale to jest starszy komputer z 1 rdzeniem i 1,5GB ramu więc na pewno nie pójdzie.
nospor
Naprawde sadzisz ze ma to jakikolwiek z SEO? Przenosze
Grandalf00
No to chyba w innym kontekście jest słowo 'optymalizacja' smile.gif
nospor
Optymalizacja jest w kontekscie SEO. Czyta sie calosc jako calosc a nie wyrowkowo poszczegolne slowa tongue.gif
Grandalf00
Ok, rozumiem smile.gif

A tak wracając do tematu. Wie ktoś jak przydzielić dla XAMPPa więcej zasobów aby php szybciej się wykonywał? Dodam jeszcze, że mam dysk SSD.
Pyton_000
tutaj tylko taktowanie procesora i ilosc ram ci pomoze. Pokaz kod i dane do odpalenia jesli mozesz.
Grandalf00
Ehh... człowiek się uczy całe życie i czasami wywarza otwarte drzwi... smile.gif Napisałem funkcję do sprawdzania tablic element po elemencie pomiędzy sobą, a przecież to czego potrzebuje załatwia... array_intersect, z tą różnicą, że moje pętle dwie tablicy porównują kilkanaście minut, a ta funkcja w sekundy smile.gif W moim przypadku to załatwia sprawę. Ale co do procka i ramu, to jak wspominałem wcześniej, zużycie procka przy mojej funkcji mam 24%, a wolnego ramu 6GB więc są zapasy smile.gif
Pyton_000
25% czyli 1 rdzeń (i raczej masz 4core i 8 threads) więc się zgadza smile.gif
r4xz
Pamiętaj też że serwer ma szybko odpowiadać, a nie robić masę obliczeń, dlatego stosuje się np. systemy kolejkowe. Serwer wrzuca tylko informację, że użytkownik chce coś obliczyć, a liczy to już inna maszyna/wątek/cokolwiek. Dzięki temu użytkownik nie musi się zastanawiać czy serwer zawisł czy też jeszcze liczy, a jak pójdzie timeout to już w ogóle licho i nic nie wiadomo.

PS Mimo wszystko gdybyś jednak musiał: http://php.net/manual/en/ini.core.php#ini.memory-limit
nasty
Cytat(Grandalf00 @ 1.04.2017, 17:10:44 ) *
Napisałem kod, który tworzy zadaną liczbą tablic z 15500 elementami. Muszę porównać każdy element ze sobą więc jak wiadomo, tych porównań będzie 15500*liczba tablic. Wszystko to robie hobbystycznie i szukam sposobu jak przyśpieszyć działanie kodu.


Użyj Hash Table.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.