信息流个性化推荐场景中依赖爬虫抓取的海量新闻库,这些新闻中不乏互相抄袭的新闻,这些内容相似的文章,会造成内容的同质化并加重数据库的存储负担,更糟糕的是降低了信息流内容的体验。所以需要一种准确高效的文本去重算法。而最朴素的做法就是将所有文本进行两两比较,简单易理解,最符合人类的直觉,这种做法对于少量文本来说,实现起来很方便,但是对于海量文本来说是行不通的,所以应在尽可能保证准确性的同时,降低算法的时间复杂度。事实上,传统比较两个文本相似性的方法,大多是将文本分词之后,转化为特征向量距离的度量,比如常见的欧氏距离、海明距离或者余弦角度等等。下面以余弦相似度和simhash算法为例做简单介绍。
性能优化是降本增效路上必不可少的手段之一,在合适的时机采用合理的手段进行性能优化,一方面可以实现系统性能提升的目标,另一方面也可以借机对腐化的代码进行清理。在程序员的面试环节中,性能优化的问题也几乎是必考题。 然而性能优化并非一锤子买卖,需要一直监控,一直优化。过早的优化、过度的优化,以及优化 ROI 都是程序员们在工作中需要评估的关键点。本文作者总结了日常工作中常见的性能优化问题,围绕数据结构展开推荐了常见的几种性能优化方案——既有提升 3 倍性能的优化技巧,也有扛住26 亿/s API 调用量的健壮方案。文末还推荐了三款好用的性能测试工具,值得点赞收藏!
本文作者根据十年工作经验分享了一些关于职场焦虑症的故事,还有一些应对技巧。希望大家在新的一年,开会不吵架,做项目不倒排。
主要介绍了对网络返回数据进行变异的客户端健壮性测试实践经验。文章第一部分介绍客户端健壮性测试的基本概念;第二部分分享了基于接口返回数据变异的App健壮性测试方案设计的思路;第三部分主要解读了变异数据的构造和异常检测方案设计;第四部分介绍了精简变异数据的探索方案。
好的单元测试不仅可以验证代码结构设计的是否合理,而且可以提前发现代码中的漏洞,将线上风险扼杀在摇篮中。本文从常用的单元测试框架出发,对Mockito框架深入浅出的讲解,希望能帮到每一位同学。
随着微服务的流行,服务之间的依赖性和调用关系变得越来越复杂,服务的稳定性变得尤为重要。业务场景中经常会涉及到瞬时流量冲击,可能会导致请求响应超时,甚至服务器被压垮、宕机不可用。出于对系统本身和上下游服务的保护,我们通常会对请求进行限流处理,快速拒绝超出配置上限的请求,保证系统或上下游服务系统的稳定。合理策略能有效应对流量冲击,确保系统可用性和性能。本文详细介绍了几种限流算法,比较各个算法的优缺点,给出了限流算法选型的一些建议,同时对业务上常用的分布式限流也提出一些解决方案。