首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何提高网站性能可以帮助拯救地球?

气候变化似乎不是一个应该关注网络开发者的问题,但事实是我们的工作中确实涉及到有碳的足迹,而且现在是我们开始考虑这个问题的时候了。

互联网使用了大量的电力,你平时开发中可能不会经常考虑它。在大多数国家,发电这意味着燃烧化石燃料,反过来,这意味着互联网的碳足迹已经发展到可能使全球加重碳足迹的程度,这使得互联网成为地球上最大的燃煤机器。

在Mozilla的互联网健康报告2018指出:尤其是互联网扩展到新的领域,“可持续发展应该是一个更大的优先权”,但因为它的快速发展,网站的成长越来越肥胖,这意味着互联网的能源需求将继续成倍增长。

与此同时,气候变化的影响每年都会变得越来越严重。绝大多数气候科学家将全球极端天气事件的凶猛和频率日益增加归因于气候变化,而气候变化主要归因于人类活动。虽然有些人质疑科学,但即使是世界上最大的石油公司现在都接受它,并承认他们的商业模式需要改变。

地球上的每个国家(美国除外)都签署了巴黎气候协议。虽然美国有争议地退出,但美国最有影响力的个人,城市,州和公司,占美国人口和经济的一半以上,通过美国的承诺倡议保留了对协议的承诺。

作为Web开发人员,可以理解这不是我们有任何影响的问题,但事实并非如此。2013年,A List Apart出版了James Christie的可持续网页设计,在过去三年中,可持续发展论坛会议见证了网络可持续发展专家在一系列基于网络的学科中分享他们的知识。

自2009年以来,绿色和平组织一直在向大型互联网公司施压,要求他们通过点击清洁活动来清理他们的能源结构。部分由于此次活动影响,谷歌去年宣布,它首次购买了足够的可再生能源,以满足其全球运营消耗的100%。

因此,除了为可再生能源服务器供电外,网络开发者还能做些什么来应对气候变化?

在使网站更具可持续性方面,最大的胜利可能是性能,用户体验和可持续性都巧妙地交织在一起。衡量数字产品可持续性的关键指标是能源使用,这包括服务器,客户端和在两者之间传输数据的中间通信网络所做的工作。

考虑到这一点,或许首先要考虑的是我们如何衡量网站的能源使用情况?这实际上比你想象的要复杂,而且很难在这里得到精确的数据。然而,我们可以使用一些良好的后备来证明能源使用,这些包括数据传输(即浏览器必须下载多少数据来显示您的网站)以及服务和接收网站的硬件的资源使用情况,这里一个明显的指标是CPU使用率,但内存使用和其他形式的数据存储也发挥了作用。

数据传输是我们可以轻松测量的一件事,所有主流浏览器都提供允许我们测量网络活动的开发人员工具。例如,在下面的屏幕截图中,我们可以看到首次加载外国网站Smashing Magazine只会导致数兆字节的数据传输,Firefox的开发人员工具实际上为我们提供了两个数字:第一个是已传输文件的未压缩大小,后者是压缩大小。

开发人员都知道,国外有一个比较好用软件压缩资产在网络中传输时最常用的工具是gzip,因此这两个数字之间的差异通常是gzip工作的结果。后一个数字表示实际传输的数据量,是值得关注的数据。

当然还有很多其他工具可以为我们提供数据传输指标,其中包括备受推崇的WebPagetest。

为了测量CPU使用率,Chrome为我们提供了一个精细的任务管理器,可显示各个选项卡的内存占用量,CPU使用率和网络活动。对于更具冒险性/技术性,top(进程表)命令在大多数类Unix操作系统(如macOS和Ubuntu)上提供类似的度量标准。一般来说,我们也可以在我们有shell访问权限的任何服务器上运行top命令。

幸运的是,像WebsiteCarbon和Ecograder这样的努力试图将这些指标转化为特定的二氧化碳数字(在WebsiteCarbon的情况下)或得分(在Ecograder的情况下)。

可持续网页设计

现在我们知道如何衡量我们网站的影响,是时候考虑如何优化事物,使其更具可持续性,更高性能,并且通常是更好的使用体验。

如上所述,网络请求是我们可以轻松测量的。我们注意到有许多HTTP请求正在进行时,有些似乎没有必要发起请求的,例如,WordPress捆绑了一些检测emojis使用情况的CSS和JavaScript,并确保它们不会显示为非法字符。这没有什么本质上的错误,但是如果你不打算使用表情符号,或者你很高兴并且确信各种系统默认设置都能满足你的要求,你就可以防止它们被加载。

这代表了相对微薄的节省,但通过建立从我们的页面修剪不需要的代码和请求的理念,我们可以进行更显着的性能改进。

仔细检查代码的错误,我们都知道,代码发生错误时,浏览器会返回错误信息,同时会增加浏览器的请求数量数据。特别注意是css使用标准,并不是所有的浏览器都只是最新的html5新特征,所有谨慎使用。

到目前为止,我们的重点几乎完全放在前端,但如果我们不在服务器端优化事物,那么很多事情就变得无关紧要了。

我们应该尽可能地为我们的服务器提供服务,正常情况下我们主要使用Nginx,特别喜欢FastCGI缓存,并发现它特别有效。

我们应该通过HTTPS使用HTTP2。使用HTTPS打开了一个新的Web技术世界,使网站更快,更安全,减少服务器的压力。

最后,我们可以在这里产生的最大影响是将我们的网站托管在由可再生能源驱动的数据中心。

我们希望已经说服你我们的观点,我们努力使我们的网站更具可持续性:

性能更高,

更人性化,

更方便,

更加服务器友好,

更好地优化了搜索引擎。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190118A1GLUS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券