我试图更好地了解Gmail API。其中一个stated benefits Gmail API就是可以提供超过IMAP的显着性能改进。" Gmail API和协议的哪些方面允许它比IMAP更有效?
答案 0 :(得分:8)
例如,IMAP具有“邮箱”的概念,并且支持这意味着为每条消息存储序列号。在Gmail的IMAP中,由于每个标签都是一个文件夹,这意味着我们需要在每个标签中保留每条消息的序列。对于像“All Mail”这样可能是1,000,000条消息的东西 - 很难在服务器中跟踪它。
像线程这样的东西对IMAP来说也是陌生的,但在Gmail中是原生的。 Gmail后端已经过优化,可以像Gmail API一样支持线程。如果要检索线程中的所有消息,则只需在API中进行一次调用。显着的性能改进是针对API有意义的用例(如Web和移动应用程序)。如果要同步整个邮箱,IMAP可以提供良好或更好的性能,因为它能够缓存经过身份验证的连接等。
答案 1 :(得分:7)
回答这个问题的最佳方法是将Gmail API docs与IMAP protocol specification进行比较,看看他们允许的操作类型。任何让你
的东西将改善绩效。
一些具体的例子:(我刚刚涉足IMAP并且没有使用Gmail API的经验,所以我的示例可能无效。就像我说的那样,read docs为完整的故事。)
答案 2 :(得分:1)
Gmail API效率更高的另一个原因是,它只需要下载一次每封邮件。
使用IMAP,每封邮件必须多次下载并编入索引,每个Gmail标签(即IMAP文件夹)必须下载一次并编入索引。
post at Metaspike已经识别出这些差异以及更多差异,包括围绕身份验证和数据类型的差异。