osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [Resolut] lenteur sur la suppression du dernier produit
gotcha5832
posté 2 Feb 2012, 10:09
Message #1


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 343
Inscrit : 27-February 08
Lieu : lune
Membre no 20966



Bonjour a tous.

Voila j'ai un soucis depuis longtemp qui me tracasse.
Avant toute chose, j'ai fais un recherche et je n'est pas trouver de sujet équvalent.
Ma boutique est un base Osc-2.2-ms2-FR avec des évo vers la 2.3.

Voila lorsque l'on supprime depuis la page panier le dernier produit, pour le vider totalement, cette étape prend énorment de temps.
J'ai penser a genre un 301 qui tourne en rond, mais non. c'est sur la fonction
Code
$cart->remove($_GET['products_id']);

du dernier produit qui créer un probleme.

Est un soucis connu, répértorier pour lequel quelqun aurais une solution.
Suis je le seul?

Merci a vous

Ce message a été modifié par gotcha5832 - 4 Feb 2012, 12:14.


--------------------
Osc-2.2-ms2-FR
Os : Linux 2.6.24.7-desktop-2mnb
Version PHP : 5.2.5 (Zend : 2.2.0)
Base de données : MySQL 5.0.51a
Serveur HTTP : Apache/2.2.8 (Mandriva Linux/PREFORK-6.1mdv2008.1)
Go to the top of the page
 
FoxP2
posté 2 Feb 2012, 17:19
Message #2


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



dans quel état est la table session (car c'est là que sont enregistrés les paniers)
poids ? nbre de lignes ?
de plus dans ta signature, tu écris : 10- et pas mal de contrib maison....
donc seul toi connais les modifications apportées au script.


--------------------


Go to the top of the page
 
chti_poupon
posté 2 Feb 2012, 17:19
Message #3


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2521
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonjour
Mes essais sur version 2.3.1 vierge (en local) ne m'ont pas convaincu. Le dernier met aussi longtemps que les autres à être effacé.
D'ailleurs le code montre que la tâche est la même, en 2.2 comme en 2.3.1 sauf que l'approche est différente en 2.2 et en 2.3.1:
  1. en 2.2 n+1 clics pour supprimer n articles (n coches + 1 bouton)
  2. en 2.3.1 n clics pour supprimer n articles (n boutons)
On gagne 1 clic, mais on perd n-1 calculs de la page : sans cache, c'est plus long - toutes choses égales par ailleurs - , mais on n'est pas là pour vider les panier, mais les faire remplir...!

Une Belle Journée !

Chti poupon

Ce message a été modifié par chti_poupon - 2 Feb 2012, 17:25.
Go to the top of the page
 
FoxP2
posté 2 Feb 2012, 17:36
Message #4


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



Citation (chti_poupon @ 2 Feb 2012, 17:19) *
mais on perd n-1 calculs de la page : sans cache, c'est plus long - toutes choses égales par ailleurs - , mais on n'est pas là pour vider les panier, mais les faire remplir...!


attention ! le cache sur oscommerce 2.2.x et 2.3.x est mis en place pour gérer des requêtes gourmandes sur des pages communes à la boutique.
La page shopping_cart n'a rien de commune, elle est au contraire propre à chaque visiteur.
quand aux tests dit 'local', en aucune façon, doit être une référence dans l'analyse. et pour cause, votre système d'exploitation fait une multitude de choses en même temps, contrairement à des serveurs distants, qui ont un nombre de tâches bien plus limitées et spécifiques, chez vos hébergeurs.(mutu/vps ou dédiés)


--------------------


Go to the top of the page
 
Gnidhal
posté 2 Feb 2012, 18:04
Message #5


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9203
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



Il y a aussi une possibilité qui m'a valu quelques heures de recherche un jour :
si une requête a été modifiée et qu'on appelle une table sans appeler de champ :
exemple "select p.products_id from products p, manufacturer m where p.products_model = '123456' "
on ouvre la table manufacturers mais on y cherche rien dedans. Le moteur sql va donc balayer toute la table bêtement.
ça peut causer un temps de fonctionnement particulièrement désastreux surtout si la table est volumineuse.


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
gotcha5832
posté 3 Feb 2012, 05:30
Message #6


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 343
Inscrit : 27-February 08
Lieu : lune
Membre no 20966



Citation (FoxP2 @ 2 Feb 2012, 18:19) *
dans quel état est la table session (car c'est là que sont enregistrés les paniers)
poids ? nbre de lignes ?
de plus dans ta signature, tu écris : 10- et pas mal de contrib maison....
donc seul toi connais les modifications apportées au script.

Je parle sur une table de session vide.
Pour les contrib maison je suis effectivement le seul a pourvoir savoir, mais je ne vois aucune de mes modif qui pourrais interférer d'ou ma question de savoir si le probleme est natif ou non.


Citation (chti_poupon @ 2 Feb 2012, 18:19) *
Bonjour
Mes essais sur version 2.3.1 vierge (en local) ne m'ont pas convaincu. Le dernier met aussi longtemps que les autres à être effacé.
D'ailleurs le code montre que la tâche est la même, en 2.2 comme en 2.3.1 sauf que l'approche est différente en 2.2 et en 2.3.1:
  1. en 2.2 n+1 clics pour supprimer n articles (n coches + 1 bouton)
  2. en 2.3.1 n clics pour supprimer n articles (n boutons)
On gagne 1 clic, mais on perd n-1 calculs de la page : sans cache, c'est plus long - toutes choses égales par ailleurs - , mais on n'est pas là pour vider les panier, mais les faire remplir...!

Une Belle Journée !

Chti poupon

Merci



Citation (Gnidhal @ 2 Feb 2012, 19:04) *
Il y a aussi une possibilité qui m'a valu quelques heures de recherche un jour :
si une requête a été modifiée et qu'on appelle une table sans appeler de champ :
exemple "select p.products_id from products p, manufacturer m where p.products_model = '123456' "
on ouvre la table manufacturers mais on y cherche rien dedans. Le moteur sql va donc balayer toute la table bêtement.
ça peut causer un temps de fonctionnement particulièrement désastreux surtout si la table est volumineuse.

Merci, mais je vois pas a quel moment il pourrais ce passser cela danss le probleme présent.


--------------------
Osc-2.2-ms2-FR
Os : Linux 2.6.24.7-desktop-2mnb
Version PHP : 5.2.5 (Zend : 2.2.0)
Base de données : MySQL 5.0.51a
Serveur HTTP : Apache/2.2.8 (Mandriva Linux/PREFORK-6.1mdv2008.1)
Go to the top of the page
 
Gnidhal
posté 3 Feb 2012, 09:35
Message #7


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9203
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



Citation (gotcha5832 @ 3 Feb 2012, 05:30) *
Merci, mais je vois pas a quel moment il pourrais ce passser cela danss le probleme présent.

- Dans la classe Shopping cart qui aurait été modifiée de travers
- dans la page shopping_cart.php modifiée par une contrib où une requête chercherait inutilement dans une table non nécessaire,
- dans application_top.php, là encore une requête modifiée pourrait tourner en rond si le panier est vide...
- et dans beaucoup d'autres scripts qui sont appelés lors de l'affichage du panier

C'est toi qui possède les outils de débogage, pas nous.
Tu as à ta disposition les logs PHP et Apache qui peuvent te donner de bonnes pistes sur la cause du problème ainsi qu'un outil de debug qui est directement activable depuis l'admin : configuration > logging
Avec une toute petite modif dans la functions/database.php tu peux marquer le timing de chaque requête et ainsi avoir plus de détails sur ce qui ne tourne pas :
Code
  function tep_db_query($query, $link = 'db_link') {
    global $$link;
    // ajout des seconndes et msecondes en début de ligne de debug
    list($usec, $sec) = explode(" ", microtime());
    $m_time = ((float)$usec + (float)$sec);
    $m_time = substr($m_time,8,5)." : ";

    if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
      @error_log($m_time.'QUERY ' . $query . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
    }

    $result = mysql_query($query, $$link) or tep_db_error($query, mysql_errno(), mysql_error());

    if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
       $result_error = mysql_error();
       @error_log($m_time.'RESULT ' . $result . ' ' . $result_error . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
    }

    return $result;
  }

Bien sur il faut activer les logs et le log de temps d'exécution ainsi que désigner un fichier cible... mais ça c'est élémentaire.

Si avec tout ça tu ne trouves pas la cause de ce ralentissement...



--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
gotcha5832
posté 3 Feb 2012, 12:49
Message #8


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 343
Inscrit : 27-February 08
Lieu : lune
Membre no 20966



Je te remercie vieux sage.

Effectivement je vais faire ca, et du coté de toute tes piste donnés


--------------------
Osc-2.2-ms2-FR
Os : Linux 2.6.24.7-desktop-2mnb
Version PHP : 5.2.5 (Zend : 2.2.0)
Base de données : MySQL 5.0.51a
Serveur HTTP : Apache/2.2.8 (Mandriva Linux/PREFORK-6.1mdv2008.1)
Go to the top of the page
 
gotcha5832
posté 4 Feb 2012, 12:16
Message #9


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 343
Inscrit : 27-February 08
Lieu : lune
Membre no 20966



Ca y est apres pas mal de recherche j'ai trouvé.

Une simple requete sql qui tournais en rond.

Merci A vous


--------------------
Osc-2.2-ms2-FR
Os : Linux 2.6.24.7-desktop-2mnb
Version PHP : 5.2.5 (Zend : 2.2.0)
Base de données : MySQL 5.0.51a
Serveur HTTP : Apache/2.2.8 (Mandriva Linux/PREFORK-6.1mdv2008.1)
Go to the top of the page
 
davas
posté 6 Nov 2012, 19:21
Message #10


Ceinture blanche+ OSC
Icône de groupe

Groupe : Membres
Messages : 20
Inscrit : 25-December 07
Membre no 20188



Citation (Gnidhal @ 3 Feb 2012, 09:35) *
Tu as à ta disposition les logs PHP et Apache qui peuvent te donner de bonnes pistes sur la cause du problème ainsi qu'un outil de debug qui est directement activable depuis l'admin : configuration > logging
(...)
Bien sur il faut activer les logs et le log de temps d'exécution ainsi que désigner un fichier cible... mais ça c'est élémentaire.

Si avec tout ça tu ne trouves pas la cause de ce ralentissement...


Gnidhal
Merci beaucoup... Vous êtes mon nouveau dieu !
Ca doit faire 6 mois que je me tire les cheveux parce que mon admin est "lent"... Le Logging m'a permis de voir que dans le Header de l'admin, j'avais plein de requêtes qui se lancait (alors que je n'étais même pas encore connecté) !!

Le fautif : QtPro qui te lance le doctor dans le header donc quand tu as bcp de produit, ça prend bcp de temps !

Merci encore
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 17th April 2014 - 13:37
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)