当前位置:  开发笔记 > 编程语言 > 正文

Google Analytics是否有性能开销?

如何解决《GoogleAnalytics是否有性能开销?》经验,为你挑选了5个好方法。

Google Analytics在多大程度上会影响效果?

我正在寻找以下内容:

基准(包括响应时间/页面加载时间等)

链接或结果与类似的基准

在您的网站上测试Google Analytics(GA)的一种(可能的)方法:

    从您自己的服务器提供ga.js(Google AnalyticsJavaScript文件).

    从Google Daily(测试1)和Weekly(测试2)更新.

我很想知道这会如何减少客户端Web服务器和GA服务器之间的通信.

有没有人进行过这些测试?如果是这样,你能提供你的结果吗?如果没有,是否有人有更好的方法来测试使用GA的性能损失(或缺乏)?



1> Oli..:

2018年更新:您在何处以及如何安装Google Analytics已经一次又一次地改变.当前的gtag.js代码做了一些事情:

    加载gtag脚本但是异步(非阻塞).这意味着它不会以带宽和处理之外的任何其他方式减慢页面速度.

    在名为的页面上创建一个数组 window.datalayer

    定义一个小gtag()函数,只需将你抛出的任何内容推送到该数组中.

    使用pageload事件调用它.

加载主gtag脚本后,它会将此阵列与Google同步并监视其更改.这是一个很好的系统,不像以前的系统(例如前面的填充代码),这意味着你可以在DOM渲染之前调用事件,并且只要你gtag()先定义脚本顺序并不重要.

这并不是说这里没有性能开销.我们仍然在加载脚本时使用带宽(它在本地缓存15分钟),并且它们不是一小堆脚本,它们会向你抛出,所以有一些CPU时间来处理它.

但与(例如)现代前端框架相比,它可以忽略不计.

如果您想要获得绝对的,最简化的网站,请完全避免.如果您正试图保护用户的隐私,请不要使用任何第三方脚本......但如果我们谈论的是一个普通的现代网站,那么如果你是gtag.js的话,其结果要远远低于gtag.js遇到性能问题.


我不知道他们是不是在两年前没有gzipping,但是,他们现在,并且在撰写本文时它将文件大小从30.92k减少到12.63k.
谷歌可能有更好的服务器,但如果可能,他们不会提供gzip压缩文件; 22k不是一个巨大的文件,它足够大,可以从gzipping中受益,特别是纯文本(在我的服务器上将其减少到10k).
错误:GA文件被标记为no-cache.没有人缓存它.

2> orip..:

有一些伟大的幻灯片由史蒂夫Souders的(客户端性能专家)约:

并行加载外部JavaScript文件的不同技术

它们对加载时间和页面呈现的影响

浏览器显示什么样的"进行中"指示器(例如,状态栏中的"加载",沙漏鼠标光标).



3> Rich..:

我没有做任何花哨的自动化测试或程序化数字运算,但是使用带有Firebug插件的好旧Firefox和一对JS变量来表示执行所有GA代码之前和之后的时间差,这是我发现的.

下载了两件事:

    ga.js是包含代码的JavaScript文件.这是9kb,因此初始下载可以忽略不计,文件名不是动态的,所以它在第一次请求后被缓存.

    带有动态URL的35字节gif文件(通过查询字符串args),因此每次都会请求.35字节也是一个可以忽略不计的下载(firebug说它花了我70分钟dl).

就执行时间而言,我第一次使用干净的浏览器缓存请求平均每次约330毫秒,后续请求在35到130毫秒之间.



4> UnkwnTech..:

根据我自己的经验,添加Google-Analytics并没有改变加载时间.

根据FireBug的说法,它加载的时间不到一秒(648MS平均值),因此根据我的其他一些测试~60% - 80%的时间是从服务器传输数据,这当然会因用户而异.

由于上述原因,我没有预先认为在本地缓存分析代码会大大改变加载时间.

我在超过40个网站上使用Google-Analytics而没有任何原因,甚至是小的减速,花费大部分时间来获取图像,由于它们的典型尺寸,这是可以理解的.



5> Dan Rosensta..:

您可以在服务器上托管ga.js而不会出现任何问题,但我们的想法是,您的用户将从他们可能访问过的其他网站缓存ga.js. 所以下载ga.js,因为它如此受欢迎,在许多情况下增加了非常少的开销(即,它已经被缓存).

此外,由于网络拓扑,DNS查找在不同位置的成本并不相同.缓存行为会根据用户是否使用包含ga.js的其他网站而发生变化.

加载javascript后,ga.js会与Google服务器进行通信,但这是一个异步过程.

希望这可以帮助.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有