什么是“基准测试集”呢?

基准测试集有三部分构成:DocumentSet、QuerySet、RelevantJudgement。在比较多个IR系统孰优孰劣的时候,要做的就是:使用统一的DecumentSet建立索引,然后使用统一的QuerySet去进行查询,最后使用统一的judgement进行评判到底哪个IR系统更优秀。

国外有个专门的组织是干这个事情的,他叫TREC(TextRetrievalConference)。这个会议一直在致力于这样一个基准测试集的维护。当然它维护的是一个英文的文档集,并且是通用的,不适用于中文。但是他的方法和思想我们是可以借鉴的。

我们可以这么做!

个人认为,对于我们这边IR系统的性能测试,可以考虑这么构造我们的测试集:

1、DocumentSet固定一定数量集的offer或者日志等信息;

2、QuerySet这个是关键问题,会很大程度影响到最终结果。我认为可以从下面两个角度来考虑构造这个QuerySet:

● 黑盒的用户角度从使用的角度来考虑可能会影响到性能的地方,比如:输入的查询词数量、返回结果结果的数据量等等。这种方式比较方便,便于实施。但是对于一些有可能会影响系统性能的特定逻辑就考虑不到,比如:一些算法里对于没有结果的Query要做重写,重写的方式可能又有很多等,这种就照顾不到。

● 白盒的工程师角度首先分析线上系统响应时间的log,把响应时间按照长短分成几个大类。比如20ms以上的,10-20ms的等等。然后使用profile工具去分析这些Query的响应时间不一致的根本原因在什么地方。通过这一系列的rootcauseanalysis的分析就能够得到影响性能的几个关键因素。剩下的事情就是构造一些列的Query去诱发这些因素的发生。这些Query就是我们要的QuerySet。

在这里插入图片描述

3、RelevantJudgement就是响应时间或者QPS。

建立好这种“基准测试集”以后,我想我们的性能可以尝试这么来做:

● typeⅠ测试(性能测试)对于我们构造好的有限个数的QuerySet,每个Query去做10次查询,取平均值作为该Query的响应时间。这样,如果QuerySet有5种类型的50个Query,那么就有50个结果,代表了在这5种情况下系统的一个性能情况。把这个结果作为性能测试的结果,让大家都看到系统的性能在各种不同情况下的一个表现和变化。

● typeⅡ测试(稳定性测试)为了确保系统能够在线上无故障的运行,我们再做一组稳定性的测试。这种稳定性的测试必须是使用线上Query、多线程的、长时间的、但不需要是“没有思考时间的全压力下”的那种。之所以这样做也是为了真实的模拟线上情况,因为线上运行的时候系统面对的就是这种多线程、时间长度不足24小时(每天要重新build索引,然后重启)、qps也就是有100的这么一种压力。

ProsandCons?

我们采用这样一种方法的好处有:

● 让我们对于IR系统的性能表现和软肋有了更加深刻的认识这点我想无需解释,构造Queryset和执行测试的过程就能够淋漓尽致的体现这一点。

● 彻底解决机器资源的争用问题按照上面的方法来做typeⅠ的测试,很快就能完成,很快就能够出结果。机器资源很好协调。对于typeⅡ的测试,可以在在一台机器上同时运行多个,因为我们的重点是系统长时间运行的可用性,并发数可以是8,但是qps能在一两百就好了,这样来执行测试,即便是有四五个项目在做这种typeⅡ的测试也不会给系统带资源带来多么大的消耗。多条产品线有一套性能测试环境就能满足需求。

● 可以提升后台算法和引擎性能测试的专业化程度我们常说性能测试的初级阶段是施压工具和性能指标收集工具的使用;进阶阶段是系统指标的分析和问题定位;中高阶段就是结合应用的特性,综合考虑系统和应用的监控指标,来综合制定测试方案和分析定位问题了。这样做未尝不是一个好的方向。

这样做的唯一难处就是:我们需要再次拥抱变化。不过,我们是aliren,相信如果大家在权衡利弊后只要相信一件事情是有价值的,那么剩下的就是开搞啦~。

写到最后想起一句话,就把这句话作为结语吧——“工程师的存在价值是:要么把枯燥单调的事情变得自动化起来,要么就是把他们变得的有趣和刺激。”

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/30151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI新模型发布,免费开放GPT-4o!但只开放一点点...

GPT-4o 中的“o”代表“omni”——指的是 GPT-4o 的多模态。 该模型将向免费客户开放,这意味着任何人都可以通过 ChatGPT 访问 OpenAI 最先进的技术。 GPT-4o 是 OpenAI 昨天晚上发布的新旗舰模型,可以实时推理音频、视觉和文本。 据官方介绍&#xff0…

编写C语言程序解决多个数学问题及修正斐波那契数列递归函数

目录 请按下列要求编写程序:(三个函数均在一个C语言源程序) 有一个四位整数,它的9倍恰好是其反序数(反序数例:1234与4321互为反序数)。 有3个非零十进制数字,用它们可以组合出6个不同的三位数&#xff0…

通过阿里云OOS定时升级Redis实例临时带宽

功能背景 在数据驱动的现代业务环境中,Redis以其卓越的性能和灵活性,已成为众多企业关键基础设施的重要组成部分。Redis广泛应用于处理缓存、会话管理、消息队列等多种数据密集型和响应敏感型的场景,对业务连续性和用户体验贡献极大。然而&a…

如何用Vue3构建一个交互式树状图

本文由ScriptEcho平台提供技术支持 项目地址:传送门 Vue 3 ApexCharts Treemap 组件:可视化多维数据 应用场景 树形图(Treemap)是一种可视化多维数据的有效方式,特别适用于展示层次结构数据或按类别分组的数据。它…

Webmin在EPICS IOC启动中的应用

本文使用webmin启动远程工控机中的EPICS IOC,受控设备使用PI公司的六轴台以及相应的控制器C-887: 1)控制器C-887 2) 六轴台: 3)在工控机上安装用于与C-887控制器进行通信的EPICS IOC程序,安装结束后&#…

【DBA早下班系列】—— 并行SQL/慢SQL 问题该如何高效收集诊断信息

1. 前言 OceanBase论坛问答区或者提交工单支持的时候大部分时间都浪费在了诊断信息的获取交互上,今天我就其中大家比较头疼的SQL问题,给大家讲解一下如何一键收集并行SQL/慢SQL所需要的诊断信息,减少沟通成本,让大家早下班。 2. …

Python网络爬虫4-实战爬取pdf

1.需求背景 爬取松产品中心网站下的家电说明书。这里以冰箱为例:松下电器-冰箱网址 网站分析: 第一步: 点击一个具体的冰箱型号,点击了解更多,会打开此型号电器的详情页面。 第二步:在新打开的详情页面中…

docker安装使用

文章目录 docker产生的原因传统虚拟机容器化技术 docker组成安装docker镜像加速docker安装过程中遇到的问题以及解决办法Errors during downloading metadata for repository root_:Failed to set locale, defaulting to C.UTF-8 docker产生的原因 传统虚拟机 在不使用docker…

图纸管理的方法、图纸管理软件

图纸管理是一个复杂且关键的过程,它涉及到图纸的创建、存储、共享、修改、审核、存档和检索等多个环节。以下是根据参考文章总结的图纸管理的具体内容和方法: 一、图纸管理的目的 1、确保图纸的准确性:通过规范的管理流程和质量控制措施&…

星戈瑞FITC-Cytochrome C:荧光标记细胞色素C的研究与应用

细胞色素C(Cytochrome C)是一种位于线粒体内膜上的蛋白质。为了深入地研究细胞色素C在细胞生物学和病理学中的功能,科学家们常常采用荧光标记技术对其进行追踪和观察。其中,异硫氰酸荧光素(FITC)作为一种常…

抖音短剧看剧系统是怎么做的?怎么样搭建上线运营?

前言: 当前热门短剧已深入大家的日常,针对一些好的短剧更是吸金无数。今天给大家介绍一下短剧这个项目整个运作模式。 一、一部短剧是怎么样呈现到观众眼前的? 首先影视作品公司拍摄剪辑好短剧 ,弄好一切审核后,放到…

Chatgpt教我打游戏攻略

宝可梦朱 我在玩宝可梦朱的时候,我的同行队伍里有黏美儿,等级为65,遇到了下雨天但是没有进化,为什么呢? 黏美儿(Goomy)要进化为黏美龙(Goodra),需要满足以下…

vue-cli 根据文字生成pdf格式文件 jsPDF

1.安装jspdf npm install jspdf --save 2.下载ttf格式文件 也可以用C:\Windows\Fonts下的字体文件,反正调一个需要的ttf字体文件就行,但有的字体存在部分字体乱码现象 微软雅黑ttf下载地址: FontsMarket.com - Download Microsoft YaHei …

访问0xdddddddd内存地址引发软件崩溃的实战问题排查

目录 1、问题描述 2、访问空指针或者野指针 3、C程序中常见的异常内存值 4、0xdddddddd内存访问违例问题分析与排查 4.1、初步分析 4.2、CConfMeidaConfigDlg窗口类对象是何时被销毁的? 4.3、为啥会访问到已经释放内存的CConfMeidaConfigDlg类对象&#xff1…

(2)图像识别yolov5—识别图片视频等文件

目录 一、识别示例图片 二、识别视频 三、修改 detect.py 代码以输出物体坐标,更改识别方式 四、更改后的演示代码: 一、识别示例图片 在yolov5文件夹中,有两个示例图片,这里我们对示例图片进行识别。 打开命令行,进入到当前yolov5目录,通过运行下面的指令,然后对…

QTimer、QElapsedTimer、timeout()事件、singleShot事件

实现 QTimer 定时器 、timeout()事件、singleShot事件的使用 QElapsedTimer 计数器的使用 布局 设置第一个和第二个groupBox高度为固定 timerexample.cpp #include "timerexample.h" #include "ui_timerexample.h" #include "QTime" #include …

分享一个dnslog在线平台

DNSLog Platform 页面只有两个按钮,点击Get Subdomain可以随机生成一个dnslog 点击Refresh Record,刷新这个dnslog的记录。可以查看到这条dnslog的IP地址和创建时间。

QT6不自动生成pro文件

安装了QT的新版本结果他不自动生成pro文件了导致下次打开很复杂 记得在创建时选择qmake,因为新版默认cmake

大模型“诸神之战”,落地才是赛点

ChatGPT 诞生已经快一年,你还在与它对话吗? 有的人用来写报告、改代码,让它成为得力帮手;有的人却只是“调戏”个两三回,让它创作诗歌或故事,便不再“宠幸”。 根据网站分析工具 SimilarWeb 的数据&#…

delphi 如何使用TEdgeBrowser组件以及打包环境在其他主机上运行

不管开发环境还是第三方环境先安装运行时库:Microsoft Edge WebView2 | Microsoft Edge Developer 开发环境可以直接通过: delphi IDE安装 安装完毕后进入到指定路径,复制里面的WebView2Loader.dll到你要开发的程序根目录: 大致路…