2010-09-20 2 views
0

Donc, je cours une application de facebook et je dois appeler FQL assez fréquemment. par exemple. appelantFacebook users_getStandardInfo est très lent. Le FQL ou CURL est-il lent?

$ fbObj-> api_client-> users_getStandardInfo() avec l'ancien facebookapi_php5_restlib

Cependant, je l'ai trouvé très très lent pour retourner la réponse. Je sais que cet appel utilise réellement CURL se connecter à Facebook.

Alors, l'appel CURL est-il lent en réponse? ou FQL? bien sûr, comment l'améliorer?

En outre, quelqu'un à quel point la nouvelle API facebook est-elle bonne? J'ai entendu dire que c'est encore pire en termes de performance ...

Répondre

0

D'après mon expérience, la plateforme Facebook est globalement lente. Je ne peux pas vraiment les blâmer. Mise à l'échelle d'une API pour desservir une base d'utilisateurs de plus de 500 millions de dollars ne peut pas être une entreprise simple :)

Quelque chose que j'ai remarqué cependant, avec le nouveau domaine api-read.facebook.com, le DNS pour ce domaine a été un peu foiré pour quelques mois maintenant. Passer d'api-read.facebook.com à api.facebook.com semble accélérer les requêtes. En outre, dans certaines régions, les appels à api-read.facebook.com prennent littéralement 15 secondes, en raison de l'installation DNS bizarre en cours.

De même, si vous utilisez le protocole SSL, essayez de le désactiver. Tous les appels d'API ne nécessitent pas de connexions SSL, et les requêtes HTTP standard vers Facebook sont beaucoup plus rapides.

Hope this helps :)

1

Vous devez soit diminuer le nombre de requêtes, ou la mise en cache d'utilisation.

Si vous avez besoin d'informations pour 100 utilisateurs, l'exécution de 100 requêtes prendrait probablement plusieurs minutes. Mais si vous les combinez en une seule requête:

select name from user where uid in (1,2,3,4,...100) 

cela prendrait seulement quelques secondes.

Si vous voulez aller dans la direction de mise en cache, alors vous pouvez vous abonner à facebook realtime updates pour être averti lorsqu'un utilisateur change leurs données.