【问题标题】:FQL vs Graph API - Which is better for basic filtering?FQL vs Graph API - 哪个更适合基本过滤?
【发布时间】:2012-08-30 14:24:02
【问题描述】:

这是对How to filter male and female id in Facebook graph api的后续跟进

假设手头的任务是找到用户的 10 个女性朋友。您可以使用 FQL 或 Graph API 执行此操作(请参阅原始问题)。

直观地说,我预计 FQL 会更快,因为 Facebook 会为您处理计算。然而,这一定是真的吗?

【问题讨论】:

    标签: facebook performance facebook-graph-api facebook-fql


    【解决方案1】:

    我刚刚使用Graph API Explorer 运行了一个快速测试 (n>=3),在 API 调用和下面的 FQL 之间交替。

    此 API 调用:

    /me/friends?fields=name,gender
    

    返回数据从 300ms 到 6223ms,avg = 1780ms。

    此 FQL 调用:

    SELECT name, sex FROM user WHERE uid IN 
      (SELECT uid2 FROM friend WHERE uid1 = me()) AND sex = "male" LIMIT 10
    

    平均在 457 毫秒到 8075 毫秒内返回数据。 3690 毫秒。

    因此,尽管数据不匹配,但 API 调用比 FQL 调用快 20-30%,因此 API 调用在任何给定时间是否会比 FQL 调用更快执行,这真是一个废话。

    使用 API 调用,您仍然需要处理最终过滤结果以找到 10 个您正在寻找的性别朋友。使用 FQL,您可以立即遍历结果集并显示它们。

    对于它的价值,如果您将 FQL 调用与从 AND 删除的所有内容进行比较,那么您将获得与 API 相似的数据,这很容易超过 API。数据在 320 到 571 毫秒内返回,平均。 = 390 毫秒。

    【讨论】:

    • FQL 为您提供更大的灵活性,并在您尝试批量请求时产生重大影响。否则,响应时间将或多或少相同。
    • 由于 API 不允许您过滤这些结果 - 因此您可能必须让相当多的用户找到十个女性 - 而 FQL 允许您按性别过滤并将结果限制为 10,我认为 FQL 将是我解决此类要求的方法。
    • 我认为你的比较不公平。您需要包括按性别过滤所需的时间并限制为 10 个用户。
    • 是的,但与 API 调用时间相比,脚本执行时间可以忽略不计。更重要的时间是编写代码以确保您有足够的结果并过滤它们所花费的时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2011-08-18
    • 1970-01-01
    • 2019-02-05
    相关资源
    最近更新 更多