是什么让Gmail API比IMAP更有效?

时间:2014-08-21 16:10:14

标签: imap gmail-api

我试图更好地了解Gmail API。其中一个stated benefits Gmail API就是可以提供超过IMAP的显着性能改进。" Gmail API和协议的哪些方面允许它比IMAP更有效?

3 个答案:

答案 0 :(得分:8)

例如,IMAP具有“邮箱”的概念,并且支持这意味着为每条消息存储序列号。在Gmail的IMAP中,由于每个标签都是一个文件夹,这意味着我们需要在每个标签中保留每条消息的序列。对于像“All Mail”这样可能是1,000,000条消息的东西 - 很难在服务器中跟踪它。

像线程这样的东西对IMAP来说也是陌生的,但在Gmail中是原生的。 Gmail后端已经过优化,可以像Gmail API一样支持线程。如果要检索线程中的所有消息,则只需在API中进行一次调用。

显着的性能改进是针对API有意义的用例(如Web和移动应用程序)。如果要同步整个邮箱,IMAP可以提供良好或更好的性能,因为它能够缓存经过身份验证的连接等。

答案 1 :(得分:7)

回答这个问题的最佳方法是将Gmail API docsIMAP protocol specification进行比较,看看他们允许的操作类型。任何让你

的东西
  • 在服务器端而不是客户端做更多工作,
  • 减少往返次数,
  • 仅发送和接收您感兴趣的特定数据,或
  • 本地缓存状态

将改善绩效。

一些具体的例子:(我刚刚涉足IMAP并且没有使用Gmail API的经验,所以我的示例可能无效。就像我说的那样,read docs为完整的故事。)

答案 2 :(得分:1)

Gmail API效率更高的另一个原因是,它只需要下载一次每封邮件。

使用IMAP,每封邮件必须多次下载并编入索引,每个Gmail标签(即IMAP文件夹)必须下载一次并编入索引。

post at Metaspike已经识别出这些差异以及更多差异,包括围绕身份验证和数据类型的差异。