Travel the world with code
11
21
SLO及SLI的基本定义 SLO及SLI的基本定义
SLO及SLI的基本定义确保应用程序可用性的很大部分是在建立和监控服务级别指标(service-level metrics)上,service-level在商业级别上主要指的是SLA,而在SRE的规划和事件中会使用SLO和SLI,这里的A,
2021-11-21 RickDamon
05
TraceSim算法概述 TraceSim算法概述
本篇博客是针对TraceSim: A Method for Calculating Stack Trace Similarity的阅读。在本文中提出了一个新的计算堆栈跟踪相似性的算法,该算法结合了TF-IDF和Levenshtein dis
2021-11-05 RickDamon
03
ReBucket论文精读 ReBucket论文精读
本篇文章是对缺陷分析算法相关论文ReBucket A method for clustering duplicate crash reports based on call stack similarity的精读。论文原链接:ReBucke
2021-11-03 RickDamon
10
31
Golang中的interface Golang中的interface
在 Go 中,关键字 interface 被赋予了多种不同的含义。每个类型都有接口,意味着对那个类型定义了方法集合 。如下这段代码定义了具有一个字段和两个方法的结构类型 S。 123type S struct { i int &#
2021-10-31 RickDamon
24
Golang中类型转换 Golang中类型转换
有时需要将一个类型转换为另一个类型。在 Go 中可以做到,当然有一些特定规则。首先,将一个值转换为另一个是由操作符(看起来像是函数:byte())完成的,而并且不是所有的转换都是允许的。 从 string 到字节或者 rune 的 slic
2021-10-24 RickDamon
16
Golang中自定义类型 Golang中自定义类型
Go 允许定义新的类型,可以通过关键字 type 实现: 1type foo int 如上我们创建了一个新的类型 foo 作用跟 int 一样。创建更加复杂的类型需要用到 struct 关键字。这有个在一个数据结构中记录某人的姓名(str
2021-10-16 RickDamon
10
Golang中的指针及内存分配 Golang中的指针及内存分配
Go 有指针。然而却没有指针运算,因此它们更像是引用而不是我们所知道的来自于 C的指针。指针非常有用。在 Go 中调用函数的时候,得记得变量是值传递的。因此,为了修改一个传递入函数的值的效率和可能性,有了指针。 通过类型作为前缀来定义一个指
2021-10-10 RickDamon
09
30
Golang中的延迟代码 Golang中的延迟代码
GO语言中,defer代码块会在函数调用链表中增加一个函数调用,这个函数调用是发生在return 之后的,通常用来释放函数的内部变量。 假设有一个函数,打开文件并对文件进行若干读写,在这种函数中,经常会有提前返回的情况。如果这样的话,就需要
2021-09-30 RickDamon
25
循环展开 循环展开
循环展开是一种程序变换,通过增加每次迭代计算的元素数量,减少循环的迭代次数,在之前的程序优化中有函数用到循环展开。循环展开能从两个方面改进程序的性能。首先,它减少了不直接有助于程序结果的操作的数量,例如循环索引计算和条件分支。第二,它提供了
2021-09-25 RickDamon
18
关于程序的性能优化-part2 关于程序的性能优化-part2
实例为了说明一个抽象程序是如何被系统转换为更有效地代码的,之后的例子我们将使用如下的向量数据结构的运行示例,向量由两个内存块表示:头部和数据数组。头部是一个声明如下的结构: /* Create abstract data type
2021-09-18 RickDamon
2 / 3