Avatar billede encorez Nybegynder
19. maj 2012 - 20:31 Der er 4 kommentarer og
1 løsning

PHP med flere tråde

Hej

Jeg har lavet et simpelt script som skal gennemanalysere en række data i en database. Samme script skal eksekveres adskillige gange, bare med forskellige variabler som input.
Scriptet der analysere laver mange mange MySQL opslag og beregner en del der ud fra.
Jeg kører det hele lokalt med WAMP installation. Hverken CPU, disk eller RAM er belastet men det tager lang tid.
Jeg tænkte om det kan speedes op ved at implementere tråde, men har aldrig prøvet det før og vil derfor høre eksperterne og det er en fordel i mit tilfælde.

Eksempel
for($int=1;$int<"10";$int++){
  //kald analysefunktion
  $test = analyser($int);
}
Her kaldes analysefuntionen 10 gange. Ville det give større performance at få hver af dem til at køre i en tråd for sig selv?
Og i så fald, har I en simpel kode til at komme i gang?

Mvh. Simon
Avatar billede encorez Nybegynder
19. maj 2012 - 20:41 #1
Jeg faldt over dette som løsning
http://blog.motane.lu/2009/01/02/multithreading-in-php/

Nogen der kender det eller kan anbefale noget andet?
Avatar billede encorez Nybegynder
19. maj 2012 - 21:06 #2
Jeg er nu i tvivl om det jeg postede før kun virker på Unix. Jeg skal bruge det på Windows
Avatar billede wave Nybegynder
19. maj 2012 - 22:43 #3
Nu afvikler du din php fra en apache webserver, den er i sig selv multi threded.. Så php wise vil det ikke være nogle fordel, du kan måske med fordel vælge innodb i forhold til Myisam som er default database / tabel på mysql. Fordelen ved denne er at du den kan behandle en querry med flere tråde vs myisam, dog kommer det også an op hvilke typer select du benytter og dine indexes ect. samt at Innodb afvilkes i ram osv.

Jeg ville nok fokusere på querrys samt at analysere databasen forud for at lave multi threded db.
check ram, i/O, table scan osv. Du kan benytte funktionen staus i phpmyadmin, til at se database analyser, der hvor svar tiderne er høje eller for mange vil de fleste være highlighted i rød.

God vind ;)
Avatar billede arne_v Ekspert
19. maj 2012 - 22:53 #4
pcntl funktionerne:
  http://www.php.net/manual/en/ref.pcntl.php
er hvad du har.

Og den extension eksisterer kun for *nix.

Enten skal du skrive din egen extension eller saa skal du skifte sprog.
Avatar billede encorez Nybegynder
13. juli 2012 - 14:23 #5
Tak for alle kommentarerne. Det er vist så multi trådet som det kan blive. Jeg fokusere andre steder for at optimere
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester