 1.3 七牛如何做HTTP服务测试七牛如何做  HTTP服务测试?  许式伟  2015-4-18  HTTP服务测试  • 单元测试  – 某个独立子服务的测试  • 集成测试  – 整个集群对外业务API的测试  • Stage环境  • Product环境  怎么测?  • 七牛早期做法  – 实现服务逻辑(Service  Implementation) 直接基于协议测试呢?  – 比如,基于  http.Client  类直接写测试案例  • 问题  – 代码相对冗长  – 业务逻辑表达不直观  • 写一些辅助函数能够略为改观,不过会有逐步写测试专用SDK的倾向  七牛当前做法  • 引入  httptest  DSL  文法  • 更接近基于  http.Client  写测试案例的思路  比如  `qiniu  f2weae23e6c9f  jg35fae526kbce`  返回一个  auth  object,用字符串无法表达  http  Request  的表达  req  <http-method>  1.3 七牛如何做HTTP服务测试七牛如何做  HTTP服务测试?  许式伟  2015-4-18  HTTP服务测试  • 单元测试  – 某个独立子服务的测试  • 集成测试  – 整个集群对外业务API的测试  • Stage环境  • Product环境  怎么测?  • 七牛早期做法  – 实现服务逻辑(Service  Implementation) 直接基于协议测试呢?  – 比如,基于  http.Client  类直接写测试案例  • 问题  – 代码相对冗长  – 业务逻辑表达不直观  • 写一些辅助函数能够略为改观,不过会有逐步写测试专用SDK的倾向  七牛当前做法  • 引入  httptest  DSL  文法  • 更接近基于  http.Client  写测试案例的思路  比如  `qiniu  f2weae23e6c9f  jg35fae526kbce`  返回一个  auth  object,用字符串无法表达  http  Request  的表达  req  <http-method> -  header  -  -  -  …  header  -  0 码力 | 27 页 | 422.11 KB | 1 年前3
 Iteratively Migrating an HTTP Service to Go and gRPC Using grpc-gateway and httputil.ReverseProxyIteratively Migrating an HTTP Service to Go and gRPC Using grpc-gateway and httputil.ReverseProxy Igor Dubinskiy GitHub: idubinskiy Twitter: idubins ● Everything but the browser a. Modify clients existing service Options to migrate a service from HTTP to gRPC Proxy using grpc-gateway and httputil.ReverseProxy https://github.com/idubinskiy/http-to-grpc-gateway Demo Thank you!0 码力 | 6 页 | 740.76 KB | 1 年前3 Iteratively Migrating an HTTP Service to Go and gRPC Using grpc-gateway and httputil.ReverseProxyIteratively Migrating an HTTP Service to Go and gRPC Using grpc-gateway and httputil.ReverseProxy Igor Dubinskiy GitHub: idubinskiy Twitter: idubins ● Everything but the browser a. Modify clients existing service Options to migrate a service from HTTP to gRPC Proxy using grpc-gateway and httputil.ReverseProxy https://github.com/idubinskiy/http-to-grpc-gateway Demo Thank you!0 码力 | 6 页 | 740.76 KB | 1 年前3
 Go 入门指南(The way to Go)2 章)和开发 环境(第 3 章)。 在本书的第二部分,我们将会带领你贯穿 Go 语言的核心思想,譬如简单与复杂类型(第 4、7、8 章), 控制结构(第 5 章),函数(第 6 章),结构与方法(第 10 章)和接口(第 11 章)。我们会对 Go 语 言的函数式和面向对象编程进行透彻的讲解,包括如何使用 Go 语言来构造大型项目(第 9 章)。 在本书的第三部分,你将会学习到如何处理不同格式的文件(第 GUI 框架项目正在如火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI 框架。不过 现阶段的 Go 语言已经提供了大量有关 Web 方面的功能,我们可以通过它强大的 http 和 template 包来 达到 Web 应用的 GUI 实现。 我们会经常涉及到一些关于 Go 语言的编码规范,了解和使用这些已经被广泛认同的规范应该是你学习阶 段最重要的实践。我会在书 为只有疯子 才会想的东西。C++ 的复杂程度(新版的 C++ 甚至更加复杂)极大了影响了软件开发的高效性,这使得 它再也不再适合这个时代。人们不再像过往那样认同在 C++ 中兼容使用 C 语言的方法,认为这些工作只 是在浪费时间,牺牲人们的努力。就在此时,Go 语言已经成功地解决了 C++ 中那些本打算解决却未能解 决的关键问题。” 我非常想要向发明这门精湛的语言的 Go 开发团队表示真挚的感谢,尤其是团队的领导者0 码力 | 380 页 | 2.97 MB | 1 年前3 Go 入门指南(The way to Go)2 章)和开发 环境(第 3 章)。 在本书的第二部分,我们将会带领你贯穿 Go 语言的核心思想,譬如简单与复杂类型(第 4、7、8 章), 控制结构(第 5 章),函数(第 6 章),结构与方法(第 10 章)和接口(第 11 章)。我们会对 Go 语 言的函数式和面向对象编程进行透彻的讲解,包括如何使用 Go 语言来构造大型项目(第 9 章)。 在本书的第三部分,你将会学习到如何处理不同格式的文件(第 GUI 框架项目正在如火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI 框架。不过 现阶段的 Go 语言已经提供了大量有关 Web 方面的功能,我们可以通过它强大的 http 和 template 包来 达到 Web 应用的 GUI 实现。 我们会经常涉及到一些关于 Go 语言的编码规范,了解和使用这些已经被广泛认同的规范应该是你学习阶 段最重要的实践。我会在书 为只有疯子 才会想的东西。C++ 的复杂程度(新版的 C++ 甚至更加复杂)极大了影响了软件开发的高效性,这使得 它再也不再适合这个时代。人们不再像过往那样认同在 C++ 中兼容使用 C 语言的方法,认为这些工作只 是在浪费时间,牺牲人们的努力。就在此时,Go 语言已经成功地解决了 C++ 中那些本打算解决却未能解 决的关键问题。” 我非常想要向发明这门精湛的语言的 Go 开发团队表示真挚的感谢,尤其是团队的领导者0 码力 | 380 页 | 2.97 MB | 1 年前3
 Go 入门指南(The way to Go)的外部包和项目 9.11 在 Go 程序中使用外部库 第10章:结构(struct)与方法(method) 10.1 结构体定义 10.2 使用工厂方法创建结构体实例 10.3 使用自定义包中的结构体 10.4 带标签的结构体 10.5 匿名字段和内嵌结构体 10.6 方法 10.7 类型的 String() 方法和格式化描述符 10.8 垃圾回收和 SetFinalizer 第11章: 1 接口是什么 11.2 接口嵌套接口 11.3 类型断言:如何检测和转换接口变量的类型 11.4 类型判断:type-switch 11.5 测试一个值是否实现了某个接口 11.6 使用方法集与接口 11.7 第一个例子:使用 Sorter 接口排序 11.8 第二个例子:读和写 11.9 空接口 11.10 反射包 11.11 Printf 和反射 11.12 接口与动态类型 为知识的传承献上您的一份力量! 如果当前文档生成时间太久,请到 书栈(BookStack.CN) 获取最新的文档,以跟上知识更新换代的步伐。 文档地址:http://www.bookstack.cn/books/the-way-to-go_ZH_CN 书栈官网:http://www.bookstack.cn 书栈开源:https://github.com/TruthHun 分享,让知识传承更久远! 感谢0 码力 | 466 页 | 4.44 MB | 1 年前3 Go 入门指南(The way to Go)的外部包和项目 9.11 在 Go 程序中使用外部库 第10章:结构(struct)与方法(method) 10.1 结构体定义 10.2 使用工厂方法创建结构体实例 10.3 使用自定义包中的结构体 10.4 带标签的结构体 10.5 匿名字段和内嵌结构体 10.6 方法 10.7 类型的 String() 方法和格式化描述符 10.8 垃圾回收和 SetFinalizer 第11章: 1 接口是什么 11.2 接口嵌套接口 11.3 类型断言:如何检测和转换接口变量的类型 11.4 类型判断:type-switch 11.5 测试一个值是否实现了某个接口 11.6 使用方法集与接口 11.7 第一个例子:使用 Sorter 接口排序 11.8 第二个例子:读和写 11.9 空接口 11.10 反射包 11.11 Printf 和反射 11.12 接口与动态类型 为知识的传承献上您的一份力量! 如果当前文档生成时间太久,请到 书栈(BookStack.CN) 获取最新的文档,以跟上知识更新换代的步伐。 文档地址:http://www.bookstack.cn/books/the-way-to-go_ZH_CN 书栈官网:http://www.bookstack.cn 书栈开源:https://github.com/TruthHun 分享,让知识传承更久远! 感谢0 码力 | 466 页 | 4.44 MB | 1 年前3
 Go Web编程我一直认为知识是用来分享的,让更多的人分享自己拥有的一切知识这个才是人生最大的快乐。 这本书目前我放在Github上,我现在基本每天晚上抽空会写一些,时间有限、能力有限,所以希望更多的朋友参与到 这个开源项目中来。 撰写方法 撰写方法 文件命名 文件命名 每个章节建立一个md文件,如第11章的第3节,则建立11.3.md 11.3.md。 代码文件 代码文件 代码文件置于src目录之下。每小节代码按目录存放。 go,执行生成的文件,就会在底目 录下生成相应的html文件 交流 交流 欢迎大家加入QQ群:259316004 《Go Web编程》专用交流群 大家有问题还可以上德问上一起交流学习:http://www.dewen.org/topic/165 致谢 致谢 首先要感谢Golang-China的QQ群102319854,里面的每一个人都很热心,同时要特别感谢几个人 四月份平民 面向对象 2.6. interface 2.7. 并发 2.8. 小结 3.Web基础 3.1 web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得web工作 3.4 Go的http包详解 3.5 小结 4.表单 4.1 处理表单的输入 4.2 验证表单的输入 4.3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.10 码力 | 295 页 | 5.91 MB | 1 年前3 Go Web编程我一直认为知识是用来分享的,让更多的人分享自己拥有的一切知识这个才是人生最大的快乐。 这本书目前我放在Github上,我现在基本每天晚上抽空会写一些,时间有限、能力有限,所以希望更多的朋友参与到 这个开源项目中来。 撰写方法 撰写方法 文件命名 文件命名 每个章节建立一个md文件,如第11章的第3节,则建立11.3.md 11.3.md。 代码文件 代码文件 代码文件置于src目录之下。每小节代码按目录存放。 go,执行生成的文件,就会在底目 录下生成相应的html文件 交流 交流 欢迎大家加入QQ群:259316004 《Go Web编程》专用交流群 大家有问题还可以上德问上一起交流学习:http://www.dewen.org/topic/165 致谢 致谢 首先要感谢Golang-China的QQ群102319854,里面的每一个人都很热心,同时要特别感谢几个人 四月份平民 面向对象 2.6. interface 2.7. 并发 2.8. 小结 3.Web基础 3.1 web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得web工作 3.4 Go的http包详解 3.5 小结 4.表单 4.1 处理表单的输入 4.2 验证表单的输入 4.3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.10 码力 | 295 页 | 5.91 MB | 1 年前3
 Go基础语法宝典冲突避免 go的二十五个关键字 简介 var 和 const 是 Go语言基础里面的变量和常量申明 package 和 import 用于分包和导入 func 用于定义函数和方法 return 用于从函数返回 defer 用于类似析构函数 go 用于并发 select 用于选择不同类型的通讯 interface 用于定义接口 struct 用于定义抽象数据类型 Go 常量和一般程序语言不同的是,可以指定相当多的小数位数(例如200位),若指定给 float32 自动缩 短为 32bit ,指定给 float64 自动缩短为 64bit ,详情参考 http://golang.org/ref/spec#Constants (需科学上网) 内置基础类型 Boolean 在Go中,布尔值的类型为 bool ,值是 true 或 false 5+5i //output: (5+5i) fmt.Printf("Value is: %v", c) //示例代码 var frenchHello string // 声明变量为字符串的一般方法 var emptyString string = "" // 声明了一个字符串变量,初始化为空字符串 func test() { no, yes, maybe := "no", "yes"0 码力 | 47 页 | 1020.34 KB | 1 年前3 Go基础语法宝典冲突避免 go的二十五个关键字 简介 var 和 const 是 Go语言基础里面的变量和常量申明 package 和 import 用于分包和导入 func 用于定义函数和方法 return 用于从函数返回 defer 用于类似析构函数 go 用于并发 select 用于选择不同类型的通讯 interface 用于定义接口 struct 用于定义抽象数据类型 Go 常量和一般程序语言不同的是,可以指定相当多的小数位数(例如200位),若指定给 float32 自动缩 短为 32bit ,指定给 float64 自动缩短为 64bit ,详情参考 http://golang.org/ref/spec#Constants (需科学上网) 内置基础类型 Boolean 在Go中,布尔值的类型为 bool ,值是 true 或 false 5+5i //output: (5+5i) fmt.Printf("Value is: %v", c) //示例代码 var frenchHello string // 声明变量为字符串的一般方法 var emptyString string = "" // 声明了一个字符串变量,初始化为空字符串 func test() { no, yes, maybe := "no", "yes"0 码力 | 47 页 | 1020.34 KB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.a为了更容易和更深刻地理解Go中的各种值 第18章:数组、切片和映射 - Go中的首要容器类型 第19章:字符串 第20章:函数 - 函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹非接 口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐慌/恢 复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 (https://gfw com/)软件的作者。 这些软件用于构建g101.org网站和 《Go语言101》电子书。 感谢Adam Chalkley对电子书制作过程提出的改进建议。 特别感谢Renee French(http://reneefrench.blogspot.com/)和Rob Pike。 本书 电子版和纸质版封面中的生动的图片来源于Rob Pike的一张幻灯片 (https://talks.golang0 码力 | 591 页 | 21.40 MB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a为了更容易和更深刻地理解Go中的各种值 第18章:数组、切片和映射 - Go中的首要容器类型 第19章:字符串 第20章:函数 - 函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹非接 口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐慌/恢 复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 (https://gfw com/)软件的作者。 这些软件用于构建g101.org网站和 《Go语言101》电子书。 感谢Adam Chalkley对电子书制作过程提出的改进建议。 特别感谢Renee French(http://reneefrench.blogspot.com/)和Rob Pike。 本书 电子版和纸质版封面中的生动的图片来源于Rob Pike的一张幻灯片 (https://talks.golang0 码力 | 591 页 | 21.40 MB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.a为了更容易和更深刻地理解Go中的各种值 第18章:数组、切片和映射 - Go中的首要容器类型 第19章:字符串 第20章:函数 - 函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹 非接口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐 慌/恢复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 ? 一书来了 支持多态(polymorphism)。 使用接口(interface)来实现裝盒(value boxing)和反射(reflection)。 支持指针。 支持函数闭包(closure)。 支持方法。 支持延迟函数调用(defer)。 支持类型内嵌(type embedding)。 支持类型推断(type deduction or type inference)。 内存安全。 自动垃圾回收。0 码力 | 821 页 | 956.82 KB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a为了更容易和更深刻地理解Go中的各种值 第18章:数组、切片和映射 - Go中的首要容器类型 第19章:字符串 第20章:函数 - 函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹 非接口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐 慌/恢复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 ? 一书来了 支持多态(polymorphism)。 使用接口(interface)来实现裝盒(value boxing)和反射(reflection)。 支持指针。 支持函数闭包(closure)。 支持方法。 支持延迟函数调用(defer)。 支持类型内嵌(type embedding)。 支持类型推断(type deduction or type inference)。 内存安全。 自动垃圾回收。0 码力 | 821 页 | 956.82 KB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.a为了更容易和更深刻地理解Go中的各种值 第18章:数组、切片和映射 - Go中的首要容器类型 第19章:字符串 第20章:函数 - 函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹非 接口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐慌/ 恢复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 一书来了解 型。 支持多态(polymorphism)。 使用接口(interface)来实现裝盒(value boxing)和反射(reflection)。 支持指针。 支持函数闭包(closure)。 支持方法。 支持延迟函数调用(defer)。 支持类型内嵌(type embedding)。 支持类型推断(type deduction or type inference)。 内存安全。 自动垃圾回收。 良好的代码跨平台性。0 码力 | 608 页 | 1.08 MB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a为了更容易和更深刻地理解Go中的各种值 第18章:数组、切片和映射 - Go中的首要容器类型 第19章:字符串 第20章:函数 - 函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 助。 4. 将接口值视为用于包裹非接口值的盒子。 我发现将接口值视为用于包裹非 接口值的盒子对于清除很多和接口相关的困惑非常有帮助。 5. 澄清了Go白皮书中的一些含糊描述,包括内嵌规则、提升方法估值和恐慌/ 恢复机制。 6. 汇总了许多知识点和细节,从而可以帮助Go程序员节省很多学习时间。 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 一书来了解 型。 支持多态(polymorphism)。 使用接口(interface)来实现裝盒(value boxing)和反射(reflection)。 支持指针。 支持函数闭包(closure)。 支持方法。 支持延迟函数调用(defer)。 支持类型内嵌(type embedding)。 支持类型推断(type deduction or type inference)。 内存安全。 自动垃圾回收。 良好的代码跨平台性。0 码力 | 608 页 | 1.08 MB | 1 年前3
 对 Go 程序进行可靠的性能测试局限与应对措施 ● 总结 2020 © Changkun Ou · Go 夜读 · 对 Go 程序进行可靠的性能测试 教科书式的性能测试方法论 3 在《Software Testing: Principles and Practices》一书中归纳的性能测试方法论: 1. 搜集需求 2. 编写测试用例 3. 自动化性能测试用例 4. 执行性能测试用例 5. 分析性能测试结果 6. 性能调优 可比较性:总是存在一个可以比较的基本线(有比较才有伤害) go test -bench 2020 © Changkun Ou · Go 夜读 · 对 Go 程序进行可靠的性能测试 进行性能基准测试的方法 8 func BenchmarkFoo(b *testing.B) { for i := 0; i < b.N; i++ { foo() // 被测函数 } } 执行性能基准测试: 个不同的结果 b1', …, bm'。 一个稳定的基准测试,结果倾向于在某个值附 近波动,于是通过通用的计算 1.5 倍四分位距 法则(1.5 x InterQuartile Range Rule)的方法 来消除异常值。 benchstat 的本质就是在消除异常值之后的 两组浮点数之间进行假设检验(Hypothesis Testing)。 我们之后再来讨论假设检验。 例子与实践 2020 ©0 码力 | 37 页 | 1.23 MB | 1 年前3 对 Go 程序进行可靠的性能测试局限与应对措施 ● 总结 2020 © Changkun Ou · Go 夜读 · 对 Go 程序进行可靠的性能测试 教科书式的性能测试方法论 3 在《Software Testing: Principles and Practices》一书中归纳的性能测试方法论: 1. 搜集需求 2. 编写测试用例 3. 自动化性能测试用例 4. 执行性能测试用例 5. 分析性能测试结果 6. 性能调优 可比较性:总是存在一个可以比较的基本线(有比较才有伤害) go test -bench 2020 © Changkun Ou · Go 夜读 · 对 Go 程序进行可靠的性能测试 进行性能基准测试的方法 8 func BenchmarkFoo(b *testing.B) { for i := 0; i < b.N; i++ { foo() // 被测函数 } } 执行性能基准测试: 个不同的结果 b1', …, bm'。 一个稳定的基准测试,结果倾向于在某个值附 近波动,于是通过通用的计算 1.5 倍四分位距 法则(1.5 x InterQuartile Range Rule)的方法 来消除异常值。 benchstat 的本质就是在消除异常值之后的 两组浮点数之间进行假设检验(Hypothesis Testing)。 我们之后再来讨论假设检验。 例子与实践 2020 ©0 码力 | 37 页 | 1.23 MB | 1 年前3
共 89 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9














 
 