收藏
回答

通过云函数获取openId 比 普通的还慢,是我用错了?

方式1:普通的方式获取

wx.login()  --> 获取到 code  --> 拿到code 请求后端服务  --> 后端服务器到微信服务器换取 openId --> 返回给前端


方式2:云函数获取

   // 云函数入口文件

   const cloud = require('wx-server-sdk')


   // 云函数入口函数

   exports.main = async (eventcontext=> {

     const wxContext = cloud.getWXContext()


     return {

       event,

       openid: wxContext.OPENID,

       appid: wxContext.APPID,

       unionid: wxContext.UNIONID,

     }

   }


   wx.cloud.callFunction({

        // 要调用的云函数名称

        name: 'main',

        // 传递给云函数的参数

        data: {},

        success: res => {},

        fail: err => {},

        complete: () => {}

      })


方式1的时长是  850.738037109375ms

方式2的时长是 2445.85205078125ms


各位大佬,是我用得不对吗

最后一次编辑于  10-25
回答关注问题邀请回答
收藏

4 个回答

  • peng.
    peng.
    10-25
    1. 目前云函数启动是毫秒级的,不存在性能比所谓“服务器”差很多的问题,执行耗时主要受逻辑代码本身影响。(在控制台日志中可以查看具体云函数运行耗时)

    2. IDE 模拟器是模拟小程序在微信客户端中的运行,需要进行一些协议转换适配,所以确实会比真实客户端上要慢一些,准确的耗时数据可以在客户端上进行测试。

    3. 楼主的代码中看不出数据是怎样测试出来的,正常来说即使是 IDE 模拟器上也不会这么慢,楼主可检查下测试方法,或者提供更多信息我们一起来定位下。

    4. 按照楼主的代码,拿到 openid 后就直接返回,在正常 4G/WIFI 网络环境下客户端耗时应该在 200ms 左右。

    10-25
    赞同 2
    回复 1
    • |G.XIAO|
      |G.XIAO|
      10-26
      谢谢,周一我写个demo看一下
      10-26
      回复
  • 周公子
    周公子
    10-25

    你好,请问是在IDE还是在微信客户端测试的?

    10-25
    赞同
    回复 5
    • |G.XIAO|
      |G.XIAO|
      10-25
      模拟器测试的
      10-25
      回复
    • 周公子
      周公子
      10-25回复|G.XIAO|
      开发者工具比微信客户端要慢一些,可以用微信客户端再测试下。
      10-25
      回复
    • |G.XIAO|
      |G.XIAO|
      10-25回复周公子
      好的,谢谢。你有没有对比过时长
      10-25
      回复
    • 周公子
      周公子
      10-25回复|G.XIAO|
      测试过,1000次请求云函数请求,取耗时的中位数,微信客户端比开发者工具要快33%。微信客户端耗时中位数是193ms。
      10-25
      回复
    • 周公子
      周公子
      10-25
      我看你在开发者工具上的请求需要2s+,有requestID没?
      10-25
      回复
  • 天才星科技
    天才星科技
    10-25

    云服务本身来说就是一个js函数,这个函数是通过nodejs执行,云函数跟正常的nodejs程序还有差别,肯定速度会慢很多了

    10-25
    赞同
    回复 1
    • |G.XIAO|
      |G.XIAO|
      10-25
      上周我听了一个分享,他们说云函数的方式提升了40%
      10-25
      1
      回复
  • 罗梅光
    罗梅光
    10-25

    自己的服务器性能肯定好些,

    10-25
    赞同
    回复 2
    • |G.XIAO|
      |G.XIAO|
      10-25
      这个是因为使用免费的云服务吗
      10-25
      回复
    • 罗梅光
      罗梅光
      10-25回复|G.XIAO|
      不是,参考以下回答。
      10-25
      回复
问题标签