基于hash的AB测试

AB测试

为同一个目标,设计两种方案,将两种方案随机投放市场中,让组成成分相同(相似)用户去随机体验两种方案之一,根据观测结果,判断哪个方案效果更好。

基于hash的AB测试

具体的实现方法为:
在AB测试中需要将用户随机的分成两组,通过对每个用户唯一id做hash运算,并对hash值对2取模,便可以将用户分成0,1两组(分桶测试便是hahs对n取模)。
每组采用不同的策略,并定义一个策略Id,跟随不同的策略埋点,在最后回收策略Id,最后通过策略id分析ab两种策略的好坏。

golang中的hash

在golang中的标准库中实现了fnv、sha1、sha256、sha512四种哈希函数。其中fnv是简单的非加密hash函数。
golang中提供了同一的hash接口:

  • type Hash
type Hash interface {
    // 通过嵌入的匿名io.Writer接口的Write方法向hash中添加更多数据,永远不返回错误
    io.Writer
    // 返回添加b到当前的hash值后的新切片,不会改变底层的hash状态
    Sum(b []byte) []byte
    // 重设hash为无数据输入的状态
    Reset()
    // 返回Sum会返回的切片的长度
    Size() int
    // 返回hash底层的块大小;Write方法可以接受任何大小的数据,
    // 但提供的数据是块大小的倍数时效率更高
    BlockSize() int
}
  • type?Hash32?
type Hash32 interface {
    Hash
    Sum32() uint32
}
  • type Hash64
type Hash64 interface {
    Hash
    Sum64() uint64
}

以上四种hash运算便是实现了这个接口。
以fnv为例:

h := fnv.New64()
h.Write([]byte(userId))
i := h.Sum64()
if i%2 != 0{
    Strategy a ...
}else{
    Strategy b ...
}

原文地址:https://www.cnblogs.com/typeck/p/11808187.html

时间: 2024-10-07 19:17:41

基于hash的AB测试的相关文章

PHP 使用Apache 中的ab 测试网站的压力性能

打开Apache服务器的安装路径(我用的是 WampServer),在bin目录中有一个ab.exe的可执行程序,它就是要介绍的压力测试工具. 在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序.注意直接双击无法正确运行. d:(回车/进入D盘) cd wamp\bin\apache\Apache2.4.4\bin(回车/进入 bin目录) ab(回车/) 如果看到下列一些帮助信息就说明成功启动ab     开始启动ab 压力测试 ab -n 5000 -c 20

tomcat AB测试结果分析

AB测试,200个请求,20个并发.这样的测试强度,CPU占了70-80%,w3p占用了70多M内存,本想多测几次,看看它的内存会不会涨上去,没 有测试机器没办法,开发机要干活.我估计CPU就有问题了,性能有好些个地方还需要优化. 顺便把测试的工具用法作个记号 基本用法: ab -n 全部请求数 -c 并发数 测试url 例:ab -n 1000 -c 50 http://www.newdev.gztest.com/ Server Software:         Microsoft-IIS/

基于端口的虚拟局域网测试

基于端口的虚拟局域网测试 一.什么是VLAN: VLAN,是英文Virtual Local Area Network的缩写,中文名为"虚拟局域网", VLAN是 一种将局域网(LAN)设备从逻辑上划分(注意,不是从物理上划分)成一个个网段(或者 说是更小的局域网LAN),从而实现虚拟工作组(单元)的数据交换技术. VLAN 主要用来解决如何将大型网络划分成多个小网络,隔离原本在同一个物理LAN中的不同主机间的二层通信: 在LAN中,各主机之间的通信是物理通信(二层通信): 在VLAN中

基于覆盖率的精准测试

精准测试是根据代码变更来选择用例的测试策略,用于回归测试.它有利于缩小用例范围,提高执行效率,降低问题定位时间,支持持续集成的极速门禁和冒烟测试.精准测试要求代码的自动化覆盖率比较高,且用例间无依赖. 基于覆盖率的精准测试,布布扣,bubuko.com

php网站优化-(ab测试)

前沿 最近要熟悉一下网站优化,包括前端优化,后端优化,涉及到的细节Opcode,Xdebuge等,都会浅浅的了解一下. 安装 ab是Apache的自带的工具,如果是window安装的,找到Apache的bin目录,在系统全局变量中添加Path,然后就可以使用ab了 ab的基本参数 -c 并发的请求数 -n 要执行的请求总数 -k 启用keep-alive功能(开启的话,请求会快一些) -H 一个使用冒号分隔的head报文头的附加信息 -t 执行这次测试所用的时间 ab基本语法 ab -c 5 -

ab测试memcache,redis,session,cookie分别的存取速度

session存或取的速度(存取差异不大): 代码: for ($i=0; $i < 100; $i++) { $bb = self::get_session('testsession'); } memcache (存取差异不大): 代码: $a = 'asdflajsdfoijaf203rfjd09wqe4tj0ahgfiopsadifgh'.mt_rand(1000,9999); $mem = new zz_memcache(); for ($i=0; $i < 100; $i++) {

使用apache benchmark(ab) 测试报错汇总

1.socket: Too many open files (24) 解决方法: [[email protected] ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 14802 max locked memory (kby

使用ab测试出现socket: Too many open files

在使用ab做压力测试的时候发现当并发设置为1000以上的时候就出现 [[email protected] ~]# ab -n 10000 -c 1500 http://192.168.100.208/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apac

使用百度云加速防apache的ab测试

Apache带的有一个ab压力测试的: 具体的概念性的东西:咱不扯:有兴趣的自行搜索: 这里只简单介绍使用方法: windows示例:e:\wamp64\bin\apache\apache2.4.17\bin\ab.exe -n1000 -c100http://baijunyao.com/article/8 mac.linux示例:/usr/bin/ab -n1000 -c100 http://baijunyao.com/article/8 e:\wamp64\bin\apache\apache