对draw.io第一次加载慢的探讨

时间:2024-03-23 09:08:50

对draw.io第一次加载慢的探讨

关于drawio的安装,传送门在此

  • 简单来说,就是个画流程图的工具

  • 第一次部署是很久挺久之前了,那时候遗留下来一个问题——第一次加在特别慢

  • 最近又弄了台云服务器,就想起这个玩意,想测试一下速度是否有所加快。
    对draw.io第一次加载慢的探讨

  • 事实上是有加快的,之前大概需要一分钟,这次需要40秒,我想这个应该和服务器的配置有关系,之前的是1核2G1M带宽,这个是2核4G1M带宽(传输没有太大变化,处理速度加快了),但是还是偏慢。

原因

1.外网延迟
  • 我稍微看了一下NetWork,列出来了几个用时比较长的项,就是上图排名靠前的几行
  • 以pusher.min.js文件为例,我们看一下它的请求头:
    对draw.io第一次加载慢的探讨
  • 这是浏览器发出去的请求头,它指向我的服务器上的项目
    对draw.io第一次加载慢的探讨
  • 而真实文件实际上在这里https://js.pusher.com/4.3/pusher.min.js
  • 我尝试过换别的浏览器访问这个js文件(Chrome已经有缓存了,懒得清理),大约需要6秒,其实比较看响应速度——说白了也就是这个网址的网给不给力,其实这个文件也就100K多一点
    对draw.io第一次加载慢的探讨
2.服务器带宽问题
  • 如果仔细回去看我当初安装时提出问题的截图,可以发现其实加在时间长的文件是随机出现的(上次不是pusher.min.js,而是一个叫MathJax.js以及一个叫app.min.js的文件)

  • 这两个文件分别是这么大~
    对draw.io第一次加载慢的探讨
    对draw.io第一次加载慢的探讨

  • 可以看到app.min.js有将近5MB的大小,而且请求下载的地址是我服务器的地址
    对draw.io第一次加载慢的探讨

  • 在IE浏览器中的测试可以充分显示时间主要花在哪
    对draw.io第一次加载慢的探讨

  • 就是app.min.js这个文件,其实不是网卡,我们可以由上图长长的绿条得出一个信息,这个文件从我的服务器上下载了足足40秒,那么为什么下载这么久嘞?

  • 这里就扯到带宽的概念,是计网中的基础概念之一,简单来说就是传输的速度,那么1M的带宽大概是多少速度呢,换算一下的话就是1024/8 = 128 kb/s

  • 对,十年前宽带的速度。

  • 这就比较好理解了,128kb/s的速度下载5MB的文件需要40秒是一件很正常的事情(部分时间带宽不是全占满的)。

总结

  • 总结一下就是,各种JS文件所需要下载的时间占了第一次加在的大部分时间,而对于外网的下载,更加看运气;对于服务器的下载更加看带宽,索性这俩是异步的,所以总时间不是单纯的叠加这么简单,但不管怎么说,国内云服务器1M的带宽真的够蛋疼的,想想升级带宽有点肉疼,就先用着了(穷就完事了)。