2009-12-11 3 views
0

Dans ma base de données (mysql), j'ai une table qui a 50k données (lignes/enregistrements). Je fais un test en utilisant firebug, après avoir joué au jeu, l'appel à load_score.php et save_score.php est d'environ 380ms (millisecondes).Obtenir des données est rapide, mais Flash affichant les données PHP est lente, pourquoi?

Le save_score.php juste une insertion normale, rien beaucoup. Le load_score.php, j'utilise cette requête:

SELECT name, score 
FROM `highscores` 
WHERE id =1 
LIMIT 0, 10 
  • Le résultat renvoie 10 lignes
  • retourne la requête en 0,0005 secondes (testé en utilisant phpmyadmin)
  • J'Echoed les données au flash.

Mais sur mon jeu (flash), il a fallu 11 secondes (compter manuellement) pour charger et enregistrer le score. Pourquoi les différences de temps sont si grandes?

Pourrait-il être le problème lorsque Flash a reçu des données PHP, le processus d'affichage est lent ??

Y a-t-il d'autres raisons pour lesquelles l'affichage prend plus de temps?

(Si vous avez besoin de plus amples informations, s'il vous plaît laissez-moi savoir)

Firebug Résultat des tests:

================================================================ 
=  File  | firebug time | actual/on web time = 
================================================================ 
= load_score.php |  435 ms  | 5 seconds(before it calls save_score.php) 
= save_score.php |  643 ms  | 4-5 seconds(before displaying highscore table) 
================================================================ 

Ainsi, le temps total pour afficher le meilleur score = ~ 10 secondes

+0

Il est difficile de dire quelque chose quand on ne sait pas dans quel format on envoie les données et comment on les traite dans le film flash. Habituellement, Flash utilise les mêmes connexions http que le navigateur. – TheHippo

+0

Vous voulez dire envoyer à partir de flash - php - flash ?? Son format "variables" – sqlnoob09

+0

essaie d'utiliser firebug + firefox pour voir combien de temps est perdu dans l'envoi et la réception de données et le reste est perdu dans l'affichage des informations. – TheHippo

Répondre

0

Pas la 'répondez, mais vous pourriez économiser jusqu'à 5 secondes en combinant les deux demandes en une seule. Avoir le script de sauvegarde retourne également la table des meilleurs scores. Vous économiserez au moins une demi-seconde (temps de transfert signalé par firebug) et peut-être plus s'il y a un retard dans le flash pour une raison quelconque.

Les commentaires ci-dessus devraient vous orienter dans la bonne direction pour résoudre ou au moins identifier la cause première.

0

Une autre approche consiste à utiliser amfphp library et donc d'envoyer/recevoir des données au format AMF natif Flash, ce qui permet d'accélérer rapidement le processus.

Questions connexes