CN113176992B - A/b实验分流方法、装置和计算机可读存储介质 - Google Patents

A/b实验分流方法、装置和计算机可读存储介质 Download PDF

Info

Publication number
CN113176992B
CN113176992B CN202110377712.5A CN202110377712A CN113176992B CN 113176992 B CN113176992 B CN 113176992B CN 202110377712 A CN202110377712 A CN 202110377712A CN 113176992 B CN113176992 B CN 113176992B
Authority
CN
China
Prior art keywords
experiment
current flow
time
period
grouping
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110377712.5A
Other languages
English (en)
Other versions
CN113176992A (zh
Inventor
林涛
揭宗昌
陈佳超
杨倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yishi Huolala Technology Co Ltd
Original Assignee
Shenzhen Yishi Huolala Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Yishi Huolala Technology Co Ltd filed Critical Shenzhen Yishi Huolala Technology Co Ltd
Priority to CN202110377712.5A priority Critical patent/CN113176992B/zh
Publication of CN113176992A publication Critical patent/CN113176992A/zh
Application granted granted Critical
Publication of CN113176992B publication Critical patent/CN113176992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

本申请涉及计算机软件领域,提供了A/B实验分流方法、装置和计算机可读存储介质,以合理划分流量所在的分组。所述方法包括:按照预定周期生成用于保存A/B实验分组集合的缓存,其中,A/B实验分组集合以分组标识为元素并且在生成后进行乱序,分组标识对应于目标流量所处轮播周期内的时间片序号;根据A/B实验的当前流量所处时刻,计算当前流量所处周期内的时间片序号;将当前流量所处周期内的时间片序号匹配A/B实验分组集合中的分组标识;若当前流量命中A/B实验分组集合中的目标分组标识,则确定当前流量在A/B实验中的分组。本申请的技术方案使得在流量之间相互独立和局部随机的前提下,对流量的分流提高了A/B实验结果的可信与合理程度。

Description

A/B实验分流方法、装置和计算机可读存储介质
技术领域
本发明涉及计算机软件领域,特别涉及一种A/B实验分流方法、装置和计算机可读存储介质。
背景技术
A/B测试(A/B Test)又称A/B实验,其基本原理是为Web(网页)或App(应用程序)的界面或流程制作两个(A/B)或多个(A/B/n)版本。在同一时间维度,分别让属性相同或相似的访客群组随机访问这些版本,收集各群组的用户体验数据和业务数据,最后分析评估出最佳版本正式采用。
A/B实验分流是一种事先对即将进行的实验设定多个流量分桶,通过特定的策略,使得一部分流量“流”入某个或某些流量分桶,另一部分流量“流”入其他流量分桶。现有A/B实验分流方法是一种按照流量的关键字(key),对关键字进行某种运算(例如,Hash运算),最后根据运算结果,确定当前流量应该流入哪个或某哪些流量分桶。
一般而言,上述现有的实验分流方法可以实现流量的随机分配。然而,对于时间片较长或者流量较少的场景,可能会出现局部流量不随机,连续几个时间片都在同一个流量分桶的情况。
发明内容
本申请提供一种A/B实验分流方法、装置和计算机可读存储介质,以合理划分流量所在的分组。
一方面,本申请提供了一种A/B实验分流方法,包括:
按照预定周期生成用于保存A/B实验分组集合的缓存,所述A/B实验分组集合以分组标识为元素并且在生成后进行乱序,所述分组标识对应于目标流量所处轮播周期内的时间片序号,所述目标流量为进行所述A/B实验时待分组的流量;
根据A/B实验的当前流量所处时刻,计算所述当前流量所处轮播周期内的时间片序号;
将所述当前流量所处轮播周期内的时间片序号匹配所述A/B实验分组集合中的分组标识;
若所述当前流量命中所述A/B实验分组集合中的目标分组标识,则确定所述当前流量在所述A/B实验中的分组。
另一方面,本申请提供了一种A/B实验分流装置,包括:
生成模块,用于按照预定周期生成用于保存A/B实验分组集合的缓存,所述A/B实验分组集合以分组标识为元素并且在生成后进行乱序,所述分组标识对应于目标流量所处轮播周期内的时间片序号,所述目标流量为进行所述A/B实验时待分组的流量;
计算模块,用于根据A/B实验的当前流量所处时刻,计算所述当前流量所处轮播周期内的时间片序号;
匹配模块,用于将所述当前流量所处轮播周期内的时间片序号匹配所述A/B实验分组集合中的分组标识;
确定模块,用于若所述当前流量命中所述A/B实验分组集合中的目标分组标识,则确定所述当前流量在所述A/B实验中的分组。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述A/B实验分流方法的技术方案的步骤。
从上述本申请提供的技术方案可知,一方面,整个A/B实验分流基于时间片轮播分流的方案进行,其中的时间片大小可根据自身的业务特点进行设定,而处于一个时间片内的所有流量作为一个样本,使得A/B实验的流量之间相互独立;另一方面,A/B实验分组集合以分组标识为元素并且在生成后进行乱序,在当前流量命中A/B实验分组集合中的目标分组标识时,确定当前流量在A/B实验中的分组,确保了流量是局部随机的,换言之,在流量之间相互独立和局部随机的前提下,对流量的分流提高了A/B实验结果的可信与合理程度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的A/B实验分流方法的流程图;
图2a是本申请实施例提供的每个轮播周期的A/B实验分组集合各个分组标识在集合中的排列示意图;
图2b是本申请实施例提供的当前流量命中图2a示例的某个分组的示意图;
图3是本申请实施例提供的A/B实验分流装置的结构示意图;
图4是本申请实施例提供的设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。
本申请提出了一种A/B实验分流方法,如附图1所示,其主要包括步骤S101至S104,详述如下:
步骤S101:按照预定周期生成用于保存A/B实验分组集合的缓存,其中,A/B实验分组集合以分组标识为元素并且在生成后进行乱序,分组标识对应于目标流量所处轮播周期内的时间片序号,目标流量为进行A/B实验时待分组的流量。
为了避免每次对流量实际处于A/B实验的哪个分组进行繁复计算,在本申请实施例中,可以将生成一个用于保存A/B实验分组集合,然后该将集合缓存起来。由于A/B实验分组集合是以分组标识为元素,而分组标识对应于目标流量(目标流量即进行A/B实验时待分组的流量)所处轮播周期内的时间片序号,因此,后续只需要简单计算一个流量所处周期内的时间片序号,即可确定该流量应该所处A/B实验中的分组。作为本申请一个实施例,步骤S101的技术方案即按照预定周期生成用于保存A/B实验分组集合的缓存可通过步骤S1011至步骤S1013实现,说明如下:
步骤S1011:按照预定哈希函数,将目标流量的标识进行哈希运算。
考虑到与其它流行的哈希函数相比,对于规律性较强的关键字(key),MurmurHash函数不仅效率高,而且随机分布特征表现更良好即哈希冲突的概率较低,因此,在本申请实施例中,可以采用MurmurHash函数,以目标流量的标识为关键字进行哈希运算。
步骤S1012:使用哈希运算得到的哈希值对目标流量对应分组标识在A/B实验分组集合中的序号取模,得到被交换分组标识在A/B实验分组集合中的序号。
将经步骤S1011使用哈希运算得到的哈希值对目标流量对应分组标识在A/B实验分组集合中的序号取模,得到第一交换分组标识在A/B实验分组集合中的序号。
例如,假设目标流量对应分组标识在A/B实验分组集合中的序号是5,使用哈希运算得到的哈希值是11,则11对5取模后得到1,这个就是第一交换分组标识在A/B实验分组集合中的序号。
步骤S1013:将第二交换分组标识与第一交换分组标识进行交换,其中,第二交换分组标识为A/B实验分组集合中与目标流量对应分组标识相邻且序号在目标流量对应分组标识的序号之后的分组标识。
按照上述举例,目标流量对应分组标识在A/B实验分组集合中的序号是5,由于第二交换分组标识为A/B实验分组集合中与目标流量对应分组标识相邻且序号在目标流量对应分组标识的序号之后的分组标识,因此,第二交换分组标识也就是A/B实验分组集合中序号为4的分组标识,将第二交换分组标识与第一交换分组标识进行交换也就是将A/B实验分组集合中序号为4的分组标识与A/B实验分组集合中序号为1的分组标识交换。之所以要将将第二交换分组标识与第一交换分组标识进行交换,是为了将A/B实验分组集合中的分组标识顺序打乱。假设某个A/B实验,目的是为了测试公众对“货拉拉”、“货搬搬”和“货运运”这三个应用名称的偏好,将该A/B实验中设置“货拉拉”、“货搬搬”和“货运运”等三个分组,其分组标识分别对应为0、1和2,即A/B实验分组集合中的元素为0、1和2。经步骤S1011和步骤S1012,得到轮播周期的A/B实验分组集合是{0,1,2}。假设每个分组占用一个时间片,则经步骤S1013,在一个轮播周期内的A/B实验分组集合可能是{0,1,2},也可能是{1,0,2}、{0,2,1}、{2,1,0}或{1,2,0}等。对经步骤S1011和步骤S1012计算出的轮播周期的A/B实验分组集合进行上述步骤S1013的操作,一方面可以最大限度地保证流量命中的分组随机,另一方面,也能保证分布式场景下同一流量命中A/B实验的分组能够保证一致。
在上述本申请实施例的步骤S101中,预定周期是时间片轮播分流方案中的时间轮播周期,该周期可以事先计算出来,即,在按照预定周期生成用于保存A/B实验分组集合的缓存之前,可以根据时间片的大小和A/B实验中每个分组占用时间片的数量,确定预定周期的大小。假设时间片的大小以t表示,该A/B实验设置了n个分组,其中任意一个分组占用的时间片的数量使用mi表示,其中,i∈{1,2,...,n},预定周期使用T表示,则
Figure GDA0003457082330000061
需要说明的是,在本申请实施例中,时间片的大小需要根据具体业务场景来设置,基本原则是其大小尽可能保证每个时间片之间的流量之间是相互独立的(时间片内的流量是否独立不做要求)。
步骤S102:根据A/B实验的当前流量所处时刻,计算当前流量所处轮播周期内的时间片序号。
由于本申请是基于时间片轮播分流的方案实现,当前流量总是对应于某个轮播周期的某个时间片。在计算当前流量所处轮播周期内的时间片序号时,需要先计算当前流量所处轮播周期。在本申请一个实施例中,根据A/B实验的当前流量所处时刻,计算当前流量所处轮播周期内的时间片序号可以是:根据A/B实验的当前流量所处时刻和A/B实验的开始时刻,获取当前流量所处轮播周期的周期号,将参数n除以A/B实验的时间片大小,得到当前流量所处轮播周期内的时间片序号,其中,
Figure GDA0003457082330000062
now表示当前流量所处时刻,t1表示A/B实验的当前流量所处时刻减去A/B实验的开始时刻,T表示轮播周期,%表示取模,
Figure GDA0003457082330000063
表示向下取整。进一步地,上述实施例中,根据A/B实验的当前流量所处时刻和A/B实验的开始时刻,获取当前流量所处轮播周期的周期号具体可以是:将A/B实验的当前流量所处时刻减去A/B实验的开始时刻,得到当前流量所处时刻距离开始时刻的时间差;将该时间差除以预定周期,得到时间比值;将该时间比值向下取整,得到当前流量所处轮播周期的周期号即A/B实验的第几个轮播周期。需要说明的是,上述当前流量所处时刻可以从当前流量的时间戳获取。假设当前流量所处时刻使用now表示,A/B实验的开始时刻使用t1表示,预定周期即轮播周期仍然使用前述实施例的T表示,即
Figure GDA0003457082330000064
则当前流量所处轮播周期的周期号Ti
Figure GDA0003457082330000065
其中,符号
Figure GDA0003457082330000066
表示对其中的数值向下取整。在得到当前流量所处轮播周期的周期号Ti之后,可以将上述参数n除以A/B实验的时间片大小,得到当前流量所处轮播周期内的时间片序号,即假设当前流量所处轮播周期内的时间片序号使用tcurrent表示,则
Figure GDA0003457082330000071
步骤S103:将当前流量所处轮播周期内的时间片序号匹配A/B实验分组集合中的分组标识。
具体地,步骤S103的实现可以是:根据时间片序号与分组标识的映射关系,得到A/B实验分组集合中每一分组标识对应的时间片序号;将当前流量所处轮播周期内的时间片序号与A/B实验分组集合中每一分组标识对应的时间片序号进行对比。
步骤S104:若当前流量命中A/B实验分组集合中的目标分组标识,则确定当前流量在A/B实验中的分组。
若经步骤S103,即,将当前流量所处轮播周期内的时间片序号匹配A/B实验分组集合中的分组标识,当前流量命中A/B实验分组集合中某个分组标识即目标分组标识,则确定当前流量在A/B实验中的分组为目标分组标识对应的分组,应该将当前流量划分至目标分组标识对应的分组。
仍然以某次A/B实验中设置的“货拉拉”、“货搬搬”和“货运运”等三个分组为例。假设在4个轮播周期即T1、T2、T3和T4内,每个轮播周期的A/B实验分组集合中,各个分组标识排列如附图2a所示,例如,在第1个轮播周期即图2a中周期号为T1的轮播周期,分组标识为0的分组(即“货拉拉”)占用时间片序号为t1时间片,分组标识为1的分组(即“货搬搬”)占用时间片序号为t2的时间片,分组标识为2的分组(即“货运运”)占用时间片序号为t3的时间片;又如,在第3个轮播周期即图2a中周期号为T3的轮播周期,分组标识为1的分组(即“货搬搬”)占用时间片序号t1为的时间片,分组标识为2的分组(即“货运运”)占用时间片序号t2为的时间片,分组标识为0的分组(即“货拉拉”)占用时间片序号为t3的时间片,等等。经上述实施例给出的技术方案,若计算得到当前流量处于第2个轮播周期即图2a中周期号为T2的轮播周期,进一步地,该流量在第2个轮播周期内的时间片序号tcurrent=t1。因此,经上述实施例的步骤S103的匹配,当前流量命中分组标识为2的分组,即该流量应该划分至“货运运”的分组,如附图2b所示。
需要说明的是,为了保证每次进行时间片轮播时重新生成A/B实验分组集合,在本申请实施例中,可以设置步骤S101生成的缓存的有效期,例如,可以预定周期为缓存的有效期,即过了一个轮播周期,缓存失效,下一个轮播周期重新生成缓存。
从上述附图1示例的A/B实验分流方法可知,一方面,整个A/B实验分流基于时间片轮播分流的方案进行,其中的时间片大小可根据自身的业务特点进行设定,而处于一个时间片内的所有流量作为一个样本,使得A/B实验的流量之间相互独立;另一方面,A/B实验分组集合以分组标识为元素并且在生成后进行乱序,在当前流量命中A/B实验分组集合中的目标分组标识时,确定当前流量在A/B实验中的分组,确保了流量是局部随机的,换言之,在流量之间相互独立和局部随机的前提下,对流量的分流提高了A/B实验结果的可信与合理程度。
请参阅附图3,是本申请实施例提供的一种A/B实验分流装置,主要包括生成模块301、计算模块302、匹配模块303和确定模块304,详述如下:
生成模块301,用于按照预定周期生成用于保存A/B实验分组集合的缓存,其中,A/B实验分组集合以分组标识为元素并且在生成后进行乱序,分组标识对应于目标流量所处轮播周期内的时间片序号,目标流量为进行A/B实验时待分组的流量;
计算模块302,用于根据A/B实验的当前流量所处时刻,计算当前流量所处轮播周期内的时间片序号;
匹配模块303,用于将当前流量所处轮播周期内的时间片序号匹配A/B实验分组集合中的分组标识;
确定模块304,用于若当前流量命中A/B实验分组集合中的目标分组标识,则确定当前流量在A/B实验中的分组。
可选地,上述附图3示例的生成模块301可以包括哈希运算单元、取模单元和乱序单元,其中:
哈希运算单元,用于按照预定哈希函数,将目标流量的标识进行哈希运算;
取模单元,用于使用哈希运算得到的哈希值对目标流量对应分组标识在A/B实验分组集合中的序号取模,得到被交换分组标识在A/B实验分组集合中的序号;
乱序单元,用于将第二交换分组标识与第一交换分组标识进行交换,其中,第二交换分组标识为A/B实验分组集合中与目标流量对应分组标识相邻且序号在目标流量对应分组标识的序号之后的分组标识。
可选地,上述附图3示例的匹配模块303可以包括第一计算单元和第二计算单元,其中:
第一计算单元,用于根据A/B实验的当前流量所处时刻和A/B实验的开始时刻,获取所述当前流量所处轮播周期的周期号;
第二计算单元,用于将当前流量所处轮播周期的周期号除以A/B实验的时间片大小,得到当前流量所处轮播周期内的时间片序号。
可选地,上述第一计算单元可以包括时间差计算单元、比值计算单元和向下取整单元,其中:
时间差计算单元,用于将A/B实验的当前流量所处时刻减去A/B实验的开始时刻,得到当前流量所处时刻距离开始时刻的时间差;
比值计算单元,用于将时间差除以预定周期,得到时间比值;
向下取整单元,用于将时间比值向下取整,得到当前流量所处轮播周期的周期号。
可选地,上述附图3示例的匹配模块303可以包括时间片序号获取单元和比对单元,其中:
时间片序号获取单元,用于根据时间片序号与分组标识的映射关系,得到A/B实验分组集合中每一分组标识对应的时间片序号;
比对单元,用于将当前流量所处轮播周期内的时间片序号与A/B实验分组集合中每一分组标识对应的时间片序号进行对比。
可选地,上述附图3示例的装置还可以包括设置模块,用于设置生成模块301生成的缓存的有效期。
可选地,上述附图3示例的装置还可以包括周期确定模块,用于生成模块301按照预定周期生成用于保存A/B实验分组集合的缓存之前,根据时间片的大小和A/B实验中每个分组占用时间片的数量,确定预定周期的大小。
从上述附图3示例的A/B实验分流装置可知,一方面,整个A/B实验分流基于时间片轮播分流的方案进行,其中的时间片大小可根据自身的业务特点进行设定,而处于一个时间片内的所有流量作为一个样本,使得A/B实验的流量之间相互独立;另一方面,A/B实验分组集合以分组标识为元素并且在生成后进行乱序,在当前流量命中A/B实验分组集合中的目标分组标识时,确定当前流量在A/B实验中的分组,确保了流量是局部随机的,换言之,在流量之间相互独立和局部随机的前提下,对流量的分流提高了A/B实验结果的可信与合理程度。
图4是本申请一实施例提供的设备的结构示意图。如图4所示,该实施例的设备4主要包括:处理器40、存储器41以及存储在存储器41中并可在处理器40上运行的计算机程序42,例如A/B实验分流方法的程序。处理器40执行计算机程序42时实现上述A/B实验分流方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,处理器40执行计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图3所示生成模块301、计算模块302、匹配模块303和确定模块304的功能。
示例性地,A/B实验分流方法的计算机程序42主要包括:按照预定周期生成用于保存A/B实验分组集合的缓存,其中,A/B实验分组集合以分组标识为元素并且在生成后进行乱序,分组标识对应于目标流量所处轮播周期内的时间片序号,目标流量为进行A/B实验时待分组的流量;根据A/B实验的当前流量所处时刻,计算当前流量所处周期内的时间片序号;将当前流量所处周期内的时间片序号匹配A/B实验分组集合中的分组标识;若当前流量命中A/B实验分组集合中的目标分组标识,则确定当前流量在A/B实验中的分组。
计算机程序42可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器41中,并由处理器40执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序42在设备4中的执行过程。例如,计算机程序42可以被分割成生成模块301、计算模块302、匹配模块303和确定模块304(虚拟装置中的模块)的功能,各模块具体功能如下:生成模块301,用于按照预定周期生成用于保存A/B实验分组集合的缓存,其中,A/B实验分组集合以分组标识为元素并且在生成后进行乱序,分组标识对应于目标流量所处轮播周期内的时间片序号,目标流量为进行A/B实验时待分组的流量;计算模块302,用于根据A/B实验的当前流量所处时刻,计算当前流量所处轮播周期内的时间片序号;匹配模块303,用于将当前流量所处轮播周期内的时间片序号匹配A/B实验分组集合中的分组标识;确定模块304,用于若当前流量命中A/B实验分组集合中的目标分组标识,则确定当前流量在A/B实验中的分组。
设备4可包括但不仅限于处理器40、存储器41。本领域技术人员可以理解,图4仅仅是设备4的示例,并不构成对设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器41可以是设备4的内部存储单元,例如设备4的硬盘或内存。存储器41也可以是设备4的外部存储设备,例如设备4上配备的插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器41还可以既包括设备4的内部存储单元也包括外部存储设备。存储器41用于存储计算机程序以及设备所需的其他程序和数据。存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即,将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非临时性计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,A/B实验分流方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,按照预定周期生成用于保存A/B实验分组集合的缓存,其中,A/B实验分组集合以分组标识为元素并且在生成后进行乱序,分组标识对应于目标流量所处轮播周期内的时间片序号,目标流量为进行A/B实验时待分组的流量;根据A/B实验的当前流量所处时刻,计算当前流量所处周期内的时间片序号;将当前流量所处周期内的时间片序号匹配A/B实验分组集合中的分组标识;若当前流量命中A/B实验分组集合中的目标分组标识,则确定当前流量在A/B实验中的分组。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。非临时性计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,非临时性计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非临时性计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种A/B实验分流方法,其特征在于,所述方法包括:
按照预定周期生成用于保存A/B实验分组集合的缓存,所述A/B实验分组集合以分组标识为元素并且在生成后进行乱序,所述分组标识对应于目标流量所处轮播周期内的时间片序号,所述目标流量为进行所述A/B实验时待分组的流量;
根据A/B实验的当前流量所处时刻,计算所述当前流量所处轮播周期内的时间片序号;
将所述当前流量所处轮播周期内的时间片序号匹配所述A/B实验分组集合中的分组标识;
若所述当前流量命中所述A/B实验分组集合中的目标分组标识,则确定所述当前流量在所述A/B实验中的分组;
所述根据A/B实验的当前流量所处时刻,计算所述当前流量所处轮播周期内的时间片序号,包括:
将所述A/B实验的当前流量所处时刻减去所述A/B实验的开始时刻,得到所述当前流量所处时刻距离所述开始时刻的时间差;
将所述时间差除以所述预定周期,得到时间比值;
将所述时间比值向下取整,得到所述当前流量所处轮播周期的周期号;
将参数n除以所述A/B实验的时间片大小,得到所述当前流量所处周期号的轮播周期内的时间片序号,所述
Figure FDA0003457082320000011
所述now表示所述当前流量所处时刻,所述t1表示所述A/B实验的当前流量所处时刻减去所述A/B实验的开始时刻,所述T表示所述轮播周期,所述%表示取模,所述
Figure FDA0003457082320000012
表示向下取整。
2.如权利要求1所述A/B实验分流方法,其特征在于,所述按照预定周期生成用于保存A/B实验分组集合的缓存,包括:
按照预定哈希函数,将所述目标流量的标识进行哈希运算;
使用所述哈希运算得到的哈希值对所述目标流量对应分组标识在所述A/B实验分组集合中的序号取模,得到第一交换分组标识在所述A/B实验分组集合中的序号;
将第二交换分组标识与所述第一交换分组标识进行交换,所述第二交换分组标识为所述A/B实验分组集合中与所述目标流量对应分组标识相邻且序号在所述目标流量对应分组标识的序号之后的分组标识。
3.如权利要求1所述A/B实验分流方法,其特征在于,所述将所述当前流量所处轮播周期内的时间片序号匹配所述A/B实验分组集合中的分组标识,包括:
根据时间片序号与分组标识的映射关系,得到所述A/B实验分组集合中每一分组标识对应的时间片序号;
将所述当前流量所处轮播周期内的时间片序号与所述A/B实验分组集合中每一分组标识对应的时间片序号进行对比。
4.如权利要求1至3任意一项所述A/B实验分流方法,其特征在于,所述方法还包括:设置所述缓存的有效期。
5.如权利要求1至3任意一项所述A/B实验分流方法,其特征在于,所述按照预定周期生成用于保存A/B实验分组集合的缓存之前,所述方法还包括:
根据时间片的大小和所述A/B实验中每个分组占用所述时间片的数量,确定所述预定周期的大小。
6.一种A/B实验分流装置,其特征在于,所述装置包括:
生成模块,用于按照预定周期生成用于保存A/B实验分组集合的缓存,所述A/B实验分组集合以分组标识为元素并且在生成后进行乱序,所述分组标识对应于目标流量所处轮播周期内的时间片序号,所述目标流量为进行所述A/B实验时待分组的流量;
计算模块,用于根据A/B实验的当前流量所处时刻,计算所述当前流量所处轮播周期内的时间片序号;具体包括:将所述A/B实验的当前流量所处时刻减去所述A/B实验的开始时刻,得到所述当前流量所处时刻距离所述开始时刻的时间差;将所述时间差除以所述预定周期,得到时间比值;将所述时间比值向下取整,得到所述当前流量所处轮播周期的周期号;将参数n除以所述A/B实验的时间片大小,得到所述当前流量所处周期号的轮播周期内的时间片序号,所述
Figure FDA0003457082320000031
所述now表示所述当前流量所处时刻,所述t1表示所述A/B实验的当前流量所处时刻减去所述A/B实验的开始时刻,所述T表示所述轮播周期,所述%表示取模,所述
Figure FDA0003457082320000032
表示向下取整;
匹配模块,用于将所述当前流量所处轮播周期内的时间片序号匹配所述A/B实验分组集合中的分组标识;
确定模块,用于若所述当前流量命中所述A/B实验分组集合中的目标分组标识,则确定所述当前流量在所述A/B实验中的分组。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任意一项所述方法的步骤。
CN202110377712.5A 2021-04-08 2021-04-08 A/b实验分流方法、装置和计算机可读存储介质 Active CN113176992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110377712.5A CN113176992B (zh) 2021-04-08 2021-04-08 A/b实验分流方法、装置和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110377712.5A CN113176992B (zh) 2021-04-08 2021-04-08 A/b实验分流方法、装置和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113176992A CN113176992A (zh) 2021-07-27
CN113176992B true CN113176992B (zh) 2022-02-15

Family

ID=76924664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110377712.5A Active CN113176992B (zh) 2021-04-08 2021-04-08 A/b实验分流方法、装置和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113176992B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113852571B (zh) * 2021-08-20 2023-11-28 阿里巴巴(中国)有限公司 分配流量的方法以及装置
CN113965522B (zh) * 2021-11-11 2024-04-05 湖南快乐阳光互动娱乐传媒有限公司 行为日志分组方法、装置、存储介质和设备
CN115361340B (zh) * 2022-08-24 2024-02-27 深圳依时货拉拉科技有限公司 Ab实验分流方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471843A (zh) * 2019-07-16 2019-11-19 北京三快在线科技有限公司 版本测试的方法、装置、存储介质及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308255B (zh) * 2017-07-28 2021-11-30 北京京东尚科信息技术有限公司 一种用于a/b测试实验的方法和装置
CN107766235B (zh) * 2017-09-06 2021-04-09 北京五八到家信息技术有限公司 一种基于随机分流的a/b测试方法
US11526421B2 (en) * 2018-01-21 2022-12-13 Microsoft Technology Licensing, Llc. Dynamic experimentation evaluation system
CN109039800A (zh) * 2018-06-28 2018-12-18 腾讯科技(深圳)有限公司 在流量实验中进行流量分配的方法、装置和计算机设备
CN110601922B (zh) * 2019-09-18 2021-01-22 北京三快在线科技有限公司 一种对照实验的实现方法、装置、电子设备和存储介质
CN111522735B (zh) * 2020-03-18 2023-07-18 北京水滴科技集团有限公司 测试实验的分流方法及装置
CN112269743B (zh) * 2020-10-30 2022-04-12 湖南快乐阳光互动娱乐传媒有限公司 一种a/b测试方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471843A (zh) * 2019-07-16 2019-11-19 北京三快在线科技有限公司 版本测试的方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN113176992A (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
CN113176992B (zh) A/b实验分流方法、装置和计算机可读存储介质
CN109345388B (zh) 区块链智能合约验证方法、装置及存储介质
CN108427725B (zh) 数据处理方法、装置和系统
CN108600414B (zh) 设备指纹的构建方法、装置、存储介质及终端
CN107992356A (zh) 区块链事务区块处理方法、电子装置及可读存储介质
CN111163018B (zh) 网络设备及其降低传输时延的方法
CN112163412B (zh) 数据校验方法、装置、电子设备及存储介质
JP7247217B2 (ja) 清算・照合方法、装置及びコンピュータ機器
CN112597138A (zh) 数据去重方法、装置、计算机设备和计算机可读存储介质
CN107438832B (zh) 一种数据刷新方法、装置及计算机可读存储介质
CN106685429B (zh) 整数压缩方法及装置
CN111949666A (zh) 标识生成方法、装置、电子设备及存储介质
CN103699610A (zh) 一种生成文件校验信息的方法、文件校验方法及设备
CN108563399B (zh) 存储设备的数据读取方法、装置、终端设备和存储介质
CN112559482A (zh) 一种基于分布式的二进制数据分类处理方法和系统
CN108763107B (zh) 后台写盘流控方法、装置、电子设备及存储介质
CN108874994A (zh) 一种分块读取数据的方法、装置及计算机存储介质
CN113965522B (zh) 行为日志分组方法、装置、存储介质和设备
CN114356512A (zh) 一种数据处理方法、设备以及计算机可读存储介质
CN106326310B (zh) 一种手机客户端软件的资源加密更新方法
CN109344185A (zh) 一种数据获取方法及装置
CN113810392B (zh) 一种海量数据的top排名方法、设备及存储介质
CN115002100B (zh) 文件传输方法、装置、电子设备及存储介质
CN113485944B (zh) 一种软件测试方法及系统
CN113076178B (zh) 报文存储方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant