Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/09/2004, 10h45   #101
CynO
Candidat au titre de Membre du Club
 
Inscription : février 2004
Messages : 32
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 32
Points : 11
Points : 11
Citation:
Moi j'en avais une autre:vaut-il mieux utiliser des fonctions mysql ou php ?
Mysql ! Faut faire des requetes qui te génère les resultats pret à etre affiché ... Utilise par exemple les fonctions de formatage de date de ta BD plutot que celui de php...

Mais j'ai aussi une question qui se raproche de celle de despe974 !!
Je suis sur un projet actuellement que je dev en php (c'est un vrai soft à lui tout seul) et j'aurais bien structurer le projet comme je l'aurais fait en java par exemple (Tout objet casiment) mais j'ai eu peur de devoir faire des includes de pages contenant 1000000000 de lignes avec toutes mes classes qui au final ne seraient pas toute utilisées dans chaque page.

Alors est ce que le fait de faire des includes de "porc" va entrainer une grosse charge et un ralentissement ?
CynO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2004, 11h00   #102
cedricgirard
Membre confirmé
 
Homme Cédric Girard
Développeur Web
Inscription : mai 2002
Messages : 297
Détails du profil
Informations personnelles :
Nom : Homme Cédric Girard
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Santé

Informations forums :
Inscription : mai 2002
Messages : 297
Points : 286
Points : 286
Ma solution : utiliser des include_once uniquement pour les libs utiles dans toutes les libs qui en dépendent. Comme ça les modules ne sont chargés qu'en cas de besoin.
PEAR::Cache_lite fait pareil, il ne charge le coeur de pear qu'en cas de besoin (en cas d'erreur en fait)
cedricgirard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2004, 12h15   #103
CynO
Candidat au titre de Membre du Club
 
Inscription : février 2004
Messages : 32
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 32
Points : 11
Points : 11
Le include_once ne se charge qu'en cas de besoin ?
C'est ce qu'il me faut mais j'ai pourtant pas vu ca dans la doc ...
http://fr2.php.net/manual/fr/function.include-once.php
CynO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2004, 13h50   #104
cedricgirard
Membre confirmé
 
Homme Cédric Girard
Développeur Web
Inscription : mai 2002
Messages : 297
Détails du profil
Informations personnelles :
Nom : Homme Cédric Girard
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Santé

Informations forums :
Inscription : mai 2002
Messages : 297
Points : 286
Points : 286
Non, j'ai mal expliqué : tu ne mets des include_once que dans les fichiers qui ont besoins d'autres fichiers, au lieu d'inclure tout ce qui peut être utile au début.
Genre classefille.php inclue classemere.php qui inclue commun.php
et classefille2.php inclue classemere2.php qui inclue commun.php
Dans une page qui n'utilise que classefille.php, les fichiers inutiles fille2 et mere2 ne seront pas chargés (gain de temps).
Mais si une page appele fille et fille2, commun.php sera inclu deux fois, d'où l'obligation d'utiliser le include_once, qui ne le reincluera pas.
cedricgirard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 20h57   #105
zamanika
Membre régulier
 
Avatar de zamanika
 
Inscription : novembre 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 106
Points : 90
Points : 90
salut,

J'ai appris pleins de choses à la lecture de ce topic !!! Grand merci à ceuzes qui y contribuent

Du coup, j'ai une question... qu'est-ce qui est plus rapide - et la différence est-elle sensible ?

3 variables différentes :
Code :
1
2
3
$var1=1;
$var2=2;
$var3=3;
ou

1 variables tableau :
Code :
1
2
3
$var[1]=1;
$var[2]=2;
$var[3]=3;
zamanika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 22h20   #106
cedricgirard
Membre confirmé
 
Homme Cédric Girard
Développeur Web
Inscription : mai 2002
Messages : 297
Détails du profil
Informations personnelles :
Nom : Homme Cédric Girard
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Santé

Informations forums :
Inscription : mai 2002
Messages : 297
Points : 286
Points : 286
Qu'est ce qui te pousse à nous faire aveuglement confiance, alors que tu peux facilement tester?
cedricgirard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 22h22   #107
zamanika
Membre régulier
 
Avatar de zamanika
 
Inscription : novembre 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 106
Points : 90
Points : 90
euh... ben comment ???
zamanika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 22h36   #108
cedricgirard
Membre confirmé
 
Homme Cédric Girard
Développeur Web
Inscription : mai 2002
Messages : 297
Détails du profil
Informations personnelles :
Nom : Homme Cédric Girard
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Santé

Informations forums :
Inscription : mai 2002
Messages : 297
Points : 286
Points : 286
Classiquement
- note l'heure
- execute 1000 fois le script
- calcule heure-heure notée

Par exemple
Code :
1
2
3
4
5
6
7
8
9
function getmicrotime()
        {
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
        }
 
$time = getmicrotime();
for($ct=0; $ct<1000; $ct++) mafunctionatester();
echo getmicrotime()-$time;
Tu as ainsi le nombre (non entier) de secondes entre le début et la fin.
Tu fais ça pour les deux versions (pour un script très simple, passe à 10000) et tu compare. Retente plusieurs fois, évite d'encoder un divx en même temps, histoire que le multitache ne brouille pas tout.

vlavlavla
Cédric
cedricgirard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 23h06   #109
zamanika
Membre régulier
 
Avatar de zamanika
 
Inscription : novembre 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 106
Points : 90
Points : 90
J'ignorai l'existence de cette fonction ( ).

Je croyais que les benchs de ce topic étaient faits par des logiciels spéciaux (quoique, en y reflechissant bien, avec le bench en ligne de iubito, j'aurai du me douter qu'il y avait du php derrière tout ça)

En tout cas, voilà une fonction qui va m'enlever bien des doutes !!!!
J'essaye demain et vous dis pour les $var et $var[] !

Merci
zamanika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 23h24   #110
zamanika
Membre régulier
 
Avatar de zamanika
 
Inscription : novembre 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 106
Points : 90
Points : 90
alors je viens de tester, mais comme c'est la première fois que je fais se genre de chose, j'aimerai savoir si j'ai procédé correctement :

J'ai repris le script ci-dessus et j'ai fais :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function getmicrotime()
        {
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
        }
 
$time = getmicrotime();
for($ct=0; $ct<100000; $ct++) {
$var0=5;
$var1=5;
$var2=5;
$var3=5;
$var4=5;
}
echo getmicrotime()-$time;
?>
resultat sur plusieurs essaies : entre 0.29 et 0.33

puis

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function getmicrotime()
        {
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
        }
 
$time = getmicrotime();
for($ct=0; $ct<100000; $ct++) {
 
$var[0]=5;
$var[1]=5;
$var[2]=5;
$var[3]=5;
$var[4]=5;
 
}
echo getmicrotime()-$time;
?>
resultat sur plusieurs essaies : entre 0.34 et 0.36

SI j'ai tout compris, le résultat c'est que c'est plus rapide de stocker des valeurs dans des variables que dans des tableaux. J'ai juste, ou je suis complétement à coté de la plaque ???
zamanika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 23h34   #111
cedricgirard
Membre confirmé
 
Homme Cédric Girard
Développeur Web
Inscription : mai 2002
Messages : 297
Détails du profil
Informations personnelles :
Nom : Homme Cédric Girard
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Santé

Informations forums :
Inscription : mai 2002
Messages : 297
Points : 286
Points : 286
Tout bon!
Toutefois, si un tableau te permet de gérer plus simplement les données, je pense qu'il ne faut pas hésiter à l'utiliser. Les gros gains se font sur les algorithmes plus que sur les astuces.
En plus pour un logiciel serveur (comme un site web) il faut prendre en compte l'utilisation mémoire, mais je n'y ai pas encore touché et je te laisse ça en exercice ;-)
Bonne nuit
cedricgirard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2004, 06h44   #112
iubito
Membre éclairé
 
Avatar de iubito
 
Homme Sylvain Machefert
Développeur Java
Inscription : janvier 2003
Messages : 380
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Machefert
Âge : 30
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Développeur Java
Secteur : Finance

Informations forums :
Inscription : janvier 2003
Messages : 380
Points : 321
Points : 321
un tableau va prendre légèrement plus de mémoire, mais si tu as besoin d'un tableau, utilise un tableau.

Maintenant si tu veux juste 3 variables temporaires $tmp1, $tmp2, $tmp3 n'utilise pas un tableau.

Par contre si tu veux une liste que tu peux trier, rechercher... bein c'est les tableaux qui s'imposent
__________________
Lé SMS cé kom lé ognon, sa pike lé yeu
iubito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2004, 10h48   #113
zamanika
Membre régulier
 
Avatar de zamanika
 
Inscription : novembre 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 106
Points : 90
Points : 90
Merci pour vos lumières !
zamanika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2004, 19h13   #114
nic58
Membre régulier
 
Inscription : octobre 2003
Messages : 67
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 67
Points : 73
Points : 73
Envoyer un message via MSN à nic58
Salut,

à votre avis il vaut mieux faire :

Code :
if(isset($tab[$indice])) ...
ou bien
Code :
if(array_key_exists($indice, $tab)) ...
:
nic58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2004, 20h33   #115
Caerbannog
Inscrit
 
Avatar de Caerbannog
 
Inscription : novembre 2004
Messages : 206
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 206
Points : 201
Points : 201
J'en sais rien...

Mais j'ai une question : comment on est censé présenter le code (que faite vous, vous ?) ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
function maFonction() {
     instructions
}
ou
function maFonction()
{
     instructions
}
ou
function maFonction()
     {
     instructions
     }
 
ou autre chose ?
pareil pour les if, switch, etc...
Caerbannog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2004, 20h36   #116
Swoög
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 050
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : janvier 2003
Messages : 6 050
Points : 8 221
Points : 8 221
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Salut !

à ce niveau, c'est de la présentation, chacun fait comme il veut, pour ma part, c'est la première ou seconde façon, mais si dans le cas d'un if par exemple, l'expression est trop complexe, il arrive aussi que je la décompose en plusieurs lignes...

Je ne pense pas que ça ais d'incidence notable au niveau des performances.
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2004, 20h40   #117
Caerbannog
Inscrit
 
Avatar de Caerbannog
 
Inscription : novembre 2004
Messages : 206
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 206
Points : 201
Points : 201
Ouais ça change rien por les performances (ce sont des "Caractères blancs", comme les sauts de ligne ), mais c'était pour savoir ce que vous trouvez "joli"... Moi c'est la 2 (je trouve la 1 "désaxée" ).
Caerbannog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2004, 20h46   #118
cedricgirard
Membre confirmé
 
Homme Cédric Girard
Développeur Web
Inscription : mai 2002
Messages : 297
Détails du profil
Informations personnelles :
Nom : Homme Cédric Girard
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Santé

Informations forums :
Inscription : mai 2002
Messages : 297
Points : 286
Points : 286
et moi la 3, mais bon les gouts et les couleurs...
cedricgirard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2004, 21h37   #119
iubito
Membre éclairé
 
Avatar de iubito
 
Homme Sylvain Machefert
Développeur Java
Inscription : janvier 2003
Messages : 380
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Machefert
Âge : 30
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Développeur Java
Secteur : Finance

Informations forums :
Inscription : janvier 2003
Messages : 380
Points : 321
Points : 321
moi c'est la 2. De toute façon aucune incidence.
__________________
Lé SMS cé kom lé ognon, sa pike lé yeu
iubito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2004, 09h24   #120
Kioob
Membre chevronné
 
Avatar de Kioob
 
Olivier Bonvalet
Inscription : septembre 2004
Messages : 550
Détails du profil
Informations personnelles :
Nom : Olivier Bonvalet
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : septembre 2004
Messages : 550
Points : 723
Points : 723
Envoyer un message via MSN à Kioob
ça, ça m'a toujours posé problème j'ai pris l'habitude d'indenté "à ma sauce", et j'avoue avoir du mal à en démordre...

ça donne :
Code :
1
2
3
4
<?php
function maFonction() {
     instructions
    }
C'est à dire un mélange de la (1) et la (3).
Kioob est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h12.


 
 
 
 
Partenaires

Hébergement Web