繁体   English   中英

MongoDB Realm 与 Stitch 登录时间 - 为什么 Realm 这么慢?

[英]MongoDB Realm vs. Stitch login times - why is Realm so slow?

我使用托管在 Atlas 上的 MongoDB 数据库构建了一个 Web 工具,通过Stitch连接。 据我了解,Stitch 现在已经贬值,已经变成了MongoDB Realm 所以我尝试更新我的网站,使用新的 Realm 应用程序而不是 Stitch。 虽然它确实有效,但由于某种原因,匿名登录现在要慢得多。 我使用 MongoDB 文档中建议的代码进行了一些快速测试:

let t0 = performance.now()
app.logIn(Realm.Credentials.anonymous()).then(() => {
         let t1 = performance.now()
         db.collection('test').find({
                category: "test"
            }, {limit: 10})
        console.log("Login took " + (t1 - t0) + " milliseconds.")
    })

登录花了我难以置信的1200 ms

let t0 = performance.now()
app.auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => {
            let t1 = performance.now()
            db.collection('test').find({
                category: 'test'
            }, {limit: 10}).asArray()
            console.log("Login took " + (t1 - t0) + " milliseconds.")
        })

使用旧的 Stitch 应用程序,登录通常需要不到20 ms

任何想法这里发生了什么或如何解决这个问题? 我确实知道有可能按照他们的文档中的描述首先对用户进行身份验证,但是我试过了,而且速度也很慢。

实际上是否需要更新到新的 Realm 应用程序,例如,旧的 Stitch 实现会在不久的将来停止工作吗? 任何有关这方面的信息将不胜感激;)

更新:我做了更多调查,似乎 Realm 速度较慢的原因是使用logIn(Realm.Credentials.anonymous()).then(() => ...导致两个 Post请求,但使用auth.loginWithCredential(new stitch.AnonymousCredential()).then(() => ...在一个请求中完成身份验证和内容下载。使用 Realm 我两次获得 500-700 毫秒的 TTFB 等待时间,使用只发生一次的 Stitch。

我目前正在使用 MongoDB Realm 从头开始​​创建应用程序的后端。 我正在使用他们的 Web SDK 使用电子邮件密码凭据进行身份验证。 我的往返性能平均约为 600-800 毫秒。

Chrome DevTools 显示了大约 600 毫秒的 Realm 用户身份验证往返

对于我的应用程序(使用 Vue 前端),这对我来说是可以接受的。 我不知道您的要求是什么,但您可能想尝试使用新的 SDK。 不幸的是,我在使用 Realm 提供的 GraphQL 端点服务时遇到了糟糕的查询性能。 根据我在他们的论坛上开始的一个帖子,他们的工程师正在研究它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM