-
Limite de javascript
Bonjour,
Voila, j'ai cr�� un script capable de g�n�rer toute les cha�nes de caractere possibles apr�s que l'utilisateur est d�fini la longueur des cha�nes � g�n�rer, ainsi que des caracteres possibles.(je sais c'est pas clair lol)
Exemple: je demande � mon scipt de g�n�rer toute les cha�nes de 4 caract�res avec trois lettres possibles : a,b et c. Celui-ci va me retourner (soit ici 81 cha�nes de caractere possible):mrgreen: :
-aaaa
-aaab
-aaac
.....
La, n'est pas le probl�me. C 'est juste qu'� partir d'une certaine longueur de chaine, I.E me met :
"Un script pr�sent sur cette page ralentit I.E. S'il continue, votre ordinteur risque de cesser de r�agir"...
Voila, apparemment quand la travail a effectu� est trop important, bah I.E bloque javascript...
J'aurais voulu savoir si mon meme script traduit en php et ainsi execut� sur le serveur rencontrerai le meme probleme ou meme une autre solution... MERCI
-
Il y'a peut �tre quelque chose de lourd dans ton script, autrement �a fonctionnera tr�s bien sur un serveur, du moins, mieux que dans un navigateur
-
A priori ca devrait passer plus facilement, m�me s'il existe quand meme un temps d'ex�cution maximal aussi cot� serveur, sp�cifi� dans ton php.ini
Code:
max_execution_time = 30 //Maximum execution time of each script, in seconds
-
d'accord et peut on changer la valeur de cette variable dans php.ini ? :?
-
changer la valeur dans php.ini n'y fera rien puisque javascript est interpr�t� cot� client ...
-
non mais je parlais dans la mesure ou mon script est en php ;)
-
Ouais bien sur c'est possible. Dans le php.ini et meme via un htaccess.
-
Quel que soit le langage utilis�, c�t� client ou serveur, le probl�me de base restera quoi qu'il en soit le m�me, � savoir la complexit� algorithmique du code � ex�cuter.
Si tu veux calculer toutes les chaines de N caract�res compos�es uniquement des X caract�res de ton alphabet, tu auras quoi qu'il en soit X^N chaines � calculer, donc, plus la taille de ta chaine grandit, plus le temps de calcul augmente (exponentiellement) et aussi plus l'occupation m�moire du programme augmente, � prendre en compte pour une ex�cution sur le serveur, en plus du temps d'ex�cution. Si tu cherches � calculer toutes les chaines de 8 caract�res compos�es � partir d'un alphabet de 8 caract�res, tu occuperas donc 128Mio soit 16 fois la m�moire autoris�e par d�faut par PHP (aussi modifiable dans le PHP.ini, mais si tu veux ajouter un caract�re � la longueur des chaines, tu multiplies encore l'espace m�moire par le nombre de caract�res de l'alphabet)
La limitation de ce point de vue l� est plus faible sur le client mais l'ex�cution est beaucoup plus lente, ... � voir en fonction de tes besoins ...
-
ah d'accord merci pour cette petite explication au niveau de la m�moire, enfaite c'est juste pour pouvoir lister les r�pertoires d'un site, en g�n�rant toute les URL et en v�rifiant si cette URL est valide, donc le fichier pr�sent sur le serveur, effectu� par la deuxi�me partie de mon script. Merci @+
-
Alors petit calcul rapide :
Supposons que tu n'utilises comme alphabet que 64 caract�res : [a-zA-Z0-9\-\.]
Supposons que le nom de tes r�pertoires en question soient compos�s de 1 � 12 caract�res chacun
Le nombre de possibilit�s � calculer est sup�rieur �
64^12 ce qui donne d�j� 4 722 366 482 869 645 213 696 possibilit�s (4*10^21).
En imaginant un calcul optimis� avec une requ�te par cycle d'horloge du processeur avec un CPU � 8 GHz, 5*10^11 secondes, soit plus de 18 705 ans.
Si tu comptes faire des tests par r�seau interpos�, en HTTP par exemple, la fr�quence pour les tests passe � quelques KHz, c'est � dire que le temps est multipli� en gros par un million, et encore, je pense �tre assez gentil ...
Tu peux donc lancer ton script et revenir dans 19 milliards d'ann�es voir le r�sultat... et encore, je ne parle que du premier niveau de l'arborescence ...
Pr�vois un peu de caf� en attendant ;)
-
Si c'est pour ton propre site, t'as plut�t int�ret � faire un listage des r�pertoires � l'aide des fonctions qui vont bien en PHP, car sur le serveur, tu as acc�s au syst�me de fichier ...
http://php.developpez.com/faq/ - http://php.developpez.com/cours/#langage
-
Sauf que je comptais lutilsais en local grace a easyphp avec mon ordi, ca serait possible ca non ?
-
A priori ouais, mais si c'est juste pour lister des fichiers t'as plus vite fait d'utiliser des fonctions d�di�es � ca comme le disait yjuliet.
J'ai du mal a comprendre pourquoi faire autrement en fait ^^
-
Cela me permettrais de lister les r�pertoires d'un site meme ceux qui poss�de un "index.html" ainsi que ceux interdit dans "robots.txt". bon maintenant il faut encore que je termine de retranscrire la premi�re partie en php pi c'est bon, et puis de tester tout ca au point de vue performance, puis au pire, je le fais fonctionner dans un ci�cle les ordinateurs seront assez performant pour me faire tout ca en 10 min :p. Alle merci a tous et puis bon d�velopement :king: . (Je sais que c'est pas correct mais bon apparemment montruc prendrais des milliards d'ann� donc il ya pas de prob ;) ).