浅谈PHP性能优化-APCu

提到PHP,大家的第一印象都是简单易用好上手。只需几个小时即可大致了解它的结构,然后几分钟的时间即可搞定一个web服务,这就是PHP的魅力。凭借这一点PHP成为七猫飞速发展的见证者,在开山之初立下汗马功劳。但提到性能,就不禁唉了一声,于是各种性能优化呼之欲出,便有了APCu。…

Clickhouse bitmap实现标签筛选功能

随着业务的发展,运营对报表的要求越来越多,为了满足运营需求,我们使用clickhouse bitmap实现了数据打标签功能,方便其对数据进行各维度的聚合、查询。本文记录了详细的实现过程,希望对大家有所帮助。…

我在七猫做阅读器——排版篇

随着产品不断迭代,阅读器作为一个占据用户99%使用时长的模块,承载了愈加复杂的业务功能。开发一个能供人看书的阅读软件并不困难,但是如何打造一个高可用的阅读器却是门道颇深。本篇文章结合本人阅读器新架构实操经验,为大家阐述开发设计中的诸多细节,希望能对大家有所帮助。…

IP库-IP段生成Trie树过程的剪枝实现

APP需支持IPv6 访问,所以需要研究下怎样能同时支持IPv4和IPv6的高并发访问。查找资料的过程中发现多篇论文提到Trie树,结合之前实现禁词库的经验,深入研究之后发现可行。该处就将IP段生成Trie树过程的剪枝实现进行简单的讨论。…

IP库-ip2region结构分析和实现

ip2region 是一个准确率99.9%的ip地址定位库。 0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java, php, c, python查询客户端和Binary,B树,内存三种查询算法。…

活动预告:七猫 AB 测试分享&培训

目前 AB 测试广泛应用于七猫业务迭代中,为了让大家更好地掌握 AB 测试相关知识、熟练地使用 AB 测试系统,七猫 AB 测试团队将于近期组织关于 AB 测试的分享与培训。…

Rxjava从0到1

Rxjava框架在七猫的安卓客户端项目中几乎无处不在,框架的优点非常明显:链式编程、丰富的操作符、与其他主流框架的互动(retrofit、room等)、函数式编程的思想让异步事件看起来像同步事件一样符合人们的思维习惯,得益于这些优点也是被Google官方推荐使用。但欲戴王冠必承其重,从某种程度上来说,Rxjava的上手比较难的,在看了源码及Rxjava相关的文档后,有了耳目一新的理解,给大家带来一些分享,希望可以让大家对这款优秀的框架有不一样的认识。…

Android-ANR:探索主线程到底卡在哪了

ANR 问题一直是 Android 性能优化的重点问题,当主线程消息调度不及时或者执行耗时方法时轻则造成卡顿,重则发生ANR,严重影响用户的体验。故而分析发生ANR时主线程在过去一段时间内调度的消息和执行的方法无疑是定位ANR原因的突破口,基于这两点,我们开发了一套主线程消息调度耗时采集和耗时方法采集工具,本文便是阐述相关的原理和实现。…

浅谈安全测试

安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。它是建立在功能测试基础上进行的测试,主要是对产品进行检验以验证是否符合安全需求定义和产品质量标准的过程。…

从推荐引擎设计谈解耦

我们常说解决问题的能力是一个人的核心竞争力,解耦就是我们提升解决问题能力的关键工具,让我们面对复杂问题、复杂项目和复杂任务时能够从容不迫,化繁为简,逐步解决遇到的任何难题。…

智能曝光打压策略的探索与实践

为保证推荐结果的新颖性,本文提出了一种新的策略,通过在推荐流程中的精排阶段引入交互特征(指用户、书籍间的曝光、点击交互数据),在保证不降低推荐精度,甚至略有提升的同时,降低过滤的复杂度,其中总存储由400GB降低为200GB(降低的曝光打压存储,新增的交互特征存储),提升推荐引擎性能, 同时模型更容易维护。…

浅谈Web端性能测试

Web性能测试是针对Web页面进行测试,以确认Web页面是否存在性能问题并为网站的优化提供依据与建议,最终提升网站的整体性能表现,提高用户体验满意度。 Kissmetrics 的一项数据调查显示:47% 的人希望网站加载时间在2秒以内。网站如果超过3秒还没有打开,40%的人会选择关闭页面离开。接下来将从以下五个步骤开始介绍如何处理Web端性能测试。…

完善Dubbo-go框架对Java枚举类可变长参数的支持

目前公司正在进行技术架构转型,原来的Java服务要改用Go来实现。重构后的Go服务必须可以完全替换掉原来的Java服务,这就要实现Java服务与Go服务的互通。考虑到Java服务使用了Dubbo框架,团队在经过探讨调研后,决定用Dubbgo-go框架来完成这一历史重任,理由也很简单,同源,这样可以完美实现服务互通。…

Clickhouse之物化视图实现高效查询

Clickhouse在单表字段特别多,查询带有聚合、列间计算操作等场景下,查询效率很低。本文主要分享一种利用Clickhouse预聚合方式,来提高查询效率的方法。…

阅读器优化—视图优化实践

随着免费小说业务快速的发展,免费小说客户端的优化也逐渐进入深水区,在2020年我们开始整体阅读器优化的调研工作。阅读器视图控件作为整个阅读器中业务交互最复杂,业务变更最频繁的组件,也是最贴近用户的组件,却面临数据UI耦合严重,广告与阅读器强耦合,代码的可维护性和可拓展性、性能都面临越来越难的境地。越来越多样化的业务视图、视频流化的广告视图,更多的业务刷新场景,多个业务模块数据视图都在阅读器中交汇,要求我们必须优化好阅读器视图,提升阅读器视图控件的性能,代码拓展性。本文主要讲述了免费小说阅读器视图控件重构的主要思路及实践经验。…

七猫免费小说 APP 内存优化实践(一)

2022年以来,七猫客户端基础组加强了对内存问题的重视,对于内存优化做了很多工作。通过线上及线下的监控手段,有效的解决了已有的线上问题,同时能够尽早发现尽早解决新增的内存问题。本文主要阐述我们团队做了哪些工作,为什么做以及如何做的(侧重于安卓端)。…

Clickhouse实现主键(排序键)更新

随着业务的发展,报表类业务数据量越来越大、属性也越来越多,数据来源多样化,然后出现mysql查询慢,添加字段越来越困难等问题。为了解决以上问题,我们开始探索新的方案,首先想到的就是clickhouse(之前的业务中已有大量使用),作为一款优秀的OLTB数据库大数据量从来都不是问题;采用列式存储,加字段也没有问题;唯一需要解决的就是如何更新数据。…

bitmap在过滤场景的应用

Roaring Bitmap是应对大数据查询、去重业务场景,很成熟的解决方案,非常适合推荐系统过滤场景的应用,高效解决了大批量查询性能的问题。在技术方案的设计上,需要考虑方案的通用性,将变化与不变化的拆分开进行“动静分离”,降低业务耦合性,提升系统的扩展性,在类似的场景上能够复用,进行快速应用。…

通过Ingress解决gRPC长连接负载不均衡的问题

Ingress是一套经过了时间的考验非常成熟的解决方案,nginx-Ingress又依托于nginx的强大历史背景,其性能和带来的价值都是让人值得称赞的.推荐引擎此次接入Ingress,不但可以解决让我们头疼已久的负载均衡问题,而且让我们节省了多个SLB的公网IP开销,同时新的通过域名请求的方式,对我们日常开发,性能问题排查,需求测试等都带来了较大的便利…

Leo框架系列(二)gRPC服务、服务注册与发现

在Go语言生态中,gRPC的使用场景相当的广泛,已经有与HTTP分庭抗礼的趋势。七猫推荐引擎全部服务都使用gRPC来传输数据与远程调用。Leo对gRPC进行了适配,简化配置,方便gRPC的启动与关闭。…