DEV 社区通过 Skylight 开源其性能指标
去年夏天,我们开源了我们的平台。
但那只是代码。现在,我们将通过向社区提供 Skylight 仪表盘,开放更多运营信息。这将有助于为所有向项目提交代码的人提供更多背景信息,同时也为任何想在我们发展过程中深入了解我们运营的人提供一个学习机会。毕竟,软件本身就具有某种本质,旨在让人们聚集在一起讨论软件。
👉 DEV Skylight 仪表板 📊
Skylight 提供有关响应时间、慢速查询、低效内存分配的洞察,并总体上帮助我们描绘出人们使用该平台时总体发生的情况。
我们大量使用 CDN 来处理大部分流量,而无需访问源站。您可以在这里阅读相关内容:
但是,随着我们不断添加新功能并不断发展,越来越多的请求类型会以各种方式到达源站。以下是我们可以从 Skylight 中获取的洞察。
工作原理
以下是 Skylight 的实际应用示例。尤其是在此页面上,以下是此文章的粘性侧边栏的性能影响(如果您使用桌面设备,则可见)。
在快速请求时
这张图展示了页面这部分在快速请求下的性能。你会发现,这部分页面的渲染率为 24%,而且渲染时性能相当出色。这是片段缓存的结果,因此 76% 的时间里,这部分内容是从内存中存储 HTML 数据,而不是向数据库发起新的查询。
请求缓慢时
另一方面,通过分析页面缓慢时发生的情况,我们可以学到很多东西。页面缓慢的部分原因是我们更频繁地为该区域提供冷服务,并在底层执行其他冷查询,从而导致性能下降。
调整 Rails 性能很大程度上取决于高效查询和合理的缓存策略。
文章已不再可用
Skylight 相当直观,但其本身就相当复杂,因此可能需要一些时间才能理解。Skylight 的入门指南是一个很好的起点。
应用程序中一些最草率的代码,是四处寻求性能提升的结果,所以这总是一个取舍的问题。您可以查看我们的开源 CodeClimate,了解代码库中在技术债务和代码可读性方面最需要改进的部分。
我们的项目、社区和代码库都比我们首次开源代码时更加完善。我们已经踏上这段旅程大约半年了,迫不及待地想与你们继续前行。项目的成功和失败很少是纯粹技术性的,但我们也取得了一些非常重大的技术胜利。每当我们迈出这样的一步,就意味着我们朝着成为一家开放透明的科技公司又迈进了一步,我们希望更多公司也能像我们一样。
编码愉快!
文章来源:https://dev.to/devteam/dev-community-is-open-source-its-performance-metrics-via-skylight-221m