浅谈Web端性能测试
Web性能测试是针对Web页面进行测试,以确认Web页面是否存在性能问题并为网站的优化提供依据与建议,最终提升网站的整体性能表现,提高用户体验满意度。 Kissmetrics 的一项数据调查显示:47% 的人希望网站加载时间在2秒以内。网站如果超过3秒还没有打开,40%的人会选择关闭页面离开。接下来将从以下五个步骤开始介绍如何处理Web端性能测试。…
Web性能测试是针对Web页面进行测试,以确认Web页面是否存在性能问题并为网站的优化提供依据与建议,最终提升网站的整体性能表现,提高用户体验满意度。 Kissmetrics 的一项数据调查显示:47% 的人希望网站加载时间在2秒以内。网站如果超过3秒还没有打开,40%的人会选择关闭页面离开。接下来将从以下五个步骤开始介绍如何处理Web端性能测试。…
目前公司正在进行技术架构转型,原来的Java服务要改用Go来实现。重构后的Go服务必须可以完全替换掉原来的Java服务,这就要实现Java服务与Go服务的互通。考虑到Java服务使用了Dubbo框架,团队在经过探讨调研后,决定用Dubbgo-go框架来完成这一历史重任,理由也很简单,同源,这样可以完美实现服务互通。…
Clickhouse在单表字段特别多,查询带有聚合、列间计算操作等场景下,查询效率很低。本文主要分享一种利用Clickhouse预聚合方式,来提高查询效率的方法。…
随着免费小说业务快速的发展,免费小说客户端的优化也逐渐进入深水区,在2020年我们开始整体阅读器优化的调研工作。阅读器视图控件作为整个阅读器中业务交互最复杂,业务变更最频繁的组件,也是最贴近用户的组件,却面临数据UI耦合严重,广告与阅读器强耦合,代码的可维护性和可拓展性、性能都面临越来越难的境地。越来越多样化的业务视图、视频流化的广告视图,更多的业务刷新场景,多个业务模块数据视图都在阅读器中交汇,要求我们必须优化好阅读器视图,提升阅读器视图控件的性能,代码拓展性。本文主要讲述了免费小说阅读器视图控件重构的主要思路及实践经验。…
2022年以来,七猫客户端基础组加强了对内存问题的重视,对于内存优化做了很多工作。通过线上及线下的监控手段,有效的解决了已有的线上问题,同时能够尽早发现尽早解决新增的内存问题。本文主要阐述我们团队做了哪些工作,为什么做以及如何做的(侧重于安卓端)。…
随着业务的发展,报表类业务数据量越来越大、属性也越来越多,数据来源多样化,然后出现mysql查询慢,添加字段越来越困难等问题。为了解决以上问题,我们开始探索新的方案,首先想到的就是clickhouse(之前的业务中已有大量使用),作为一款优秀的OLTB数据库大数据量从来都不是问题;采用列式存储,加字段也没有问题;唯一需要解决的就是如何更新数据。…
Roaring Bitmap是应对大数据查询、去重业务场景,很成熟的解决方案,非常适合推荐系统过滤场景的应用,高效解决了大批量查询性能的问题。在技术方案的设计上,需要考虑方案的通用性,将变化与不变化的拆分开进行“动静分离”,降低业务耦合性,提升系统的扩展性,在类似的场景上能够复用,进行快速应用。…
Ingress是一套经过了时间的考验非常成熟的解决方案,nginx-Ingress又依托于nginx的强大历史背景,其性能和带来的价值都是让人值得称赞的.推荐引擎此次接入Ingress,不但可以解决让我们头疼已久的负载均衡问题,而且让我们节省了多个SLB的公网IP开销,同时新的通过域名请求的方式,对我们日常开发,性能问题排查,需求测试等都带来了较大的便利…
在Go语言生态中,gRPC的使用场景相当的广泛,已经有与HTTP分庭抗礼的趋势。七猫推荐引擎全部服务都使用gRPC来传输数据与远程调用。Leo对gRPC进行了适配,简化配置,方便gRPC的启动与关闭。…
在互联网无处不在的背景下,其实我们已经生活在一个视觉文化的时代,人们在互动交流的时候纯文字内容显得过于单调和无聊。所以在交流时倾向于使用活泼生动,能体现出自己感情和个性的表情。于是就有了形象生动的小七系列表情包,在web端为了避免重复开发 互动表情功能,将该评论表情功能 封装成了 q-emojin-input 公共组件。…
随着公司规模的不断扩大,业务程序变得越来越复杂,代码可读性、复用性和扩展性很差,技术优化无从下手,代码改动牵一发而动全身,业务推进困难,大量系统重复建设等等问题层出不穷。为了解决此类问题我们也尝试过不少的方式方法,例如加强设计评审,定义代码规范、代码评审等等用以提高系统以及代码质量。然而真正执行推进时我们发现代码还是太复杂、太难维护,同时大家对业务背景的理解程度不同,认知不同,沟通低效,在做评审时也很难找出代码、系统设计上的不合理性,我们几乎很难将代码与设计对应起来,代码无法正确的反应设计,代码评审也就仅仅变成了代码规范性、代码设计优雅度的评审,很难找出代码业务逻辑的问题。…
本文概括总结了多系统登录与授权功能的设计方案、内部逻辑和实现方法,当前的技术方案能够满足多业务后台的登录授权需求以及用户使用的便利性,但是仍然具有较大的优化空间。…
本文概述了七猫手机客户端 DevOps 流水线设计与实现思路,整体看下来非常简单,这主要得益于流水线这一模型本身非常强大且富有生命力,我们在 Web Service,云计算,以及大数据的流式计算等身上都看到了这一思维模型。七猫客户端 DevOps 流水线的设计就是遵循 Unix 管道的理念,将业务功能封装成独立的原子服务,通过业务流程将原子服务进行串联,从而能够动态的拼装业务流程,快速建立新的流水线。希望通过本文对客户端 DevOps 流水线的设计与实现的介绍,能够给大家的日常开发工作带来一些启发。…
Leo是一款可以快速构建可直接运行的高性能Go应用程序框架,它提供了很多工具,帮助开发者降低搭建分布式或者微服务系统的复杂度,专注于业务开发。目前已全面应用于七猫免费小说推荐引擎服务中,在这种高要求的场景下也检验了Leo的可靠性。Leo这个名字来自于我养的一只叫Leo的猫。…
在使用mysql的时候,发现尽管一张表删除了许多数据,但是这张表的实际占用空间却并没有变小。为什么会如此,本篇文章介绍了这一知识点。…
关于连接池,想必大家耳熟能详。从其定义上来说,连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。简单点来说,就是当我们的程序在运行时,将数据库的连接进行实例化,每个连接当成对象存储在内存中,并且用一个数量大小的池子将其管理起来,当后续需要与数据库进行网络通信的时候再从池子中取出已有且正常的连接对象进行复用即可。因此,其所带来的好处显而易见,比如:1.减少连接的创建时间;2.提高资源的复用性减少资源浪费;3.精简编程模式简化开发模型等…
通过制作一本EPUB书籍和了解其内部结构,可以让我们对EPUB这种格式的电子书有一个较为全面的了解和认知,今后不但可以编写属于自己的.epub格式的书籍,而且可以根据其结构去编写解析EPUB格式的阅读器和制作用于测试的书籍。希望此篇可以带你开启深入研究EPUB电子书的大门~…
一小时,解决你开会的常见烦恼: · 作为会议的发起者,如何明确主题,吸引参会者? · 作为会议的主持者,如何引导会议走向?及时总结、修正、控场? · 作为会议的参与者:如何发言不跑题、全面、有呼应? · 如何输出优秀的会议纪要? 课程不仅有方法和原则,更有落地的工具模板,手把手完成一次高效的会议。…
ClickHouse 是一款比较新型的列式分析型数据库。相比较传统的关系型数据库,ClickHouse能解决大数据量数据的查询场景。本文主要站在ClickHouse运维的角度上,结合业务实际运行中的具体场景,参考ClickHouse经典案例,总结故障实践经验,用于参考学习和对问题的分析。…
前段时间我们推荐引擎这边发现一个非常诡异的事情,具体表现为线上k8s每次滚动更新或发版时,都会有大批量请求出现超时,进而触发服务端的p99熔断报警,导致推荐服务发生短暂不可用等情况。接下来这篇文章就来说一说我是如何排查以及解决这个问题的。…