2010-03-08 9 views
0

J'ai une boucle qui fonctionne pendant env. 25 minutes, c'est-à-dire 1500 secondes. [100 boucles avec sleep (15)]La durée d'exécution du processeur est-elle différente dans Boucle avec Veille() et Boucles longues sans veille(), les deux ayant le même temps d'exécution total?

Le temps d'exécution des instructions à l'intérieur de la boucle est très inférieur.

Mes scripts sont hébergés sur GoDaddy. Je suis sûr qu'ils ont une sorte de limite sur le temps d'exécution.

Ma question est, sont-ils concernés par "le temps total d'exécution du processeur" ou le temps total de fonctionnement.

Répondre

3

Ils seront concernés par le Temps d'exécution de l'UC, pas le temps total d'exécution, sauf si les connexions sont un problème et que vous en utilisez beaucoup (ce qui ne sonne pas comme vous êtes).

Le temps d'exécution, comme dans un chronomètre, n'a pas beaucoup d'importance pour un hôte partagé, si votre boucle dure 3 ans mais n'utilise que 0,01% de CPU, cela n'a aucun impact sur leur capacité d'hébergement. Cependant, si vous avez fonctionné pendant 3 ans avec un processeur à 100%, cela a un impact direct sur le nombre d'autres applications/VM/tout ce qui peut être exécuté sur ce même matériel. Cela signifierait plus de serveurs pour héberger le même nombre de personnes ce qui signifie de l'argent ... que ils se soucient.

Pour la question dans le titre: ils sont très différents. Avec sleep() et la même quantité de temps total, cela signifie que le travail que le processeur fait est beaucoup moins parce qu'il peut faire le travail, dormir/inactif, et finir toujours dans le même laps de temps. Lorsque vous appelez le sleep(), vous ne taxez pas le processeur, il s'agit d'une opération à très faible consommation d'énergie pour que le minuteur continue à fonctionner jusqu'à ce que vous appeliez à nouveau votre code.

0

Ceci est la limite de temps typique:

http://es2.php.net/manual/en/info.configuration.php#ini.max-execution-time

Il peut normalement être modifié dans une base par script avec ini_set(), par exemple:

ini_set('max_execution_time', 20*60); // 20 minutes (in seconds) 

Quoiqu'il en soit, l'heure exacte les limites dépendent probablement du fonctionnement de PHP (module Apache, fastCGI, CLI ...).

+0

J'ai toujours préféré la fonction 'set_time_limit()', personnellement. Je ne sais pas si cela équivaut à appeler ini_set(). Je suppose que j'ai toujours supposé que s'ils créaient une fonction pour cela, il est probablement bon de l'utiliser. –