- 博客(12)
- 收藏
- 关注
原创 Prometheus入门
一、什么是TSDB?TSDB(Time Series Database)时序列数据库,我们可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的。1、时间序列数据库的特点大部分时间都是写入操作。写入操作几乎是顺序添加,大多数时候数据到达后都以时间排序。写操作很少写入很久之前的数据,也很少更新数据。大多数情况在数据被采集到数秒或者数分钟后就会被写入数据库。删除操作一...
2018-06-06 14:38:34 756
转载 Go并发编程基础
原文出处: nada.kth.se 译文出处:youngsterxyf(@夏永锋_SJTU) 本文是一篇并发编程方面的入门文章,以Go语言编写示例代码,内容涵盖:运行期并发线程(goroutines)基本的同步技术(管道和锁)Go语言中基本的并发模式死锁和数据竞争并行计算在开始阅读本文之前,你应该知道如何编写简单的Go程序。如果你熟悉的是C/C++、Java或Python之类的语言,那么 ...
2018-06-06 11:32:43 262
转载 fasthttp 的 goroutine pool 实现探究
引言fasthttp是一个非常优秀的web server框架,号称比官方的net/http快10倍以上。fasthttp用了很多黑魔法。俗话说,源码面前,了无秘密,我们今天通过源码来看一看她的goroutine pool的实现。热身fasthttp写server和原生的net/http写法上基本没有区别,这里就不举例子。直接找到入口函数,在根目录下的server.go文件中,我们从函数Listen...
2018-06-06 11:28:03 316
转载 S.O.L.I.D 原则在 Go 中的应用
前言由于自己最近灵感枯竭,所以我决定翻译一篇别人的文章 O(∩_∩)O~。作为一个一直想学 Go,但想了好久还没入门的人,我挑了篇写 Go 的文章,顺便帮自己熟悉一下 Go。原文是 Dave Cheney 根据自己 GolangUK 的演讲所整理的,全文以 SOLID 原则为线路,讲述了什么样的 Go 代码才算是好代码,当然 SOLID 原则也适用于其他语言。英文原文比较长,由我和 Kevin 合...
2018-06-06 11:27:15 276
转载 Go 中的锁源码实现:Mutex
上一篇文章《当我们谈论锁,我们谈什么》 中我提到了锁,准确地说是信号量(semaphore, mutext是semaphore的一种)的实现方式有两种:wait的时候忙等待或者阻塞自己。1234567891011121314//忙等待wait(S) { while(S<=0) ; //no-op S--}//阻塞wait(semaphore *S) { S...
2018-06-06 11:25:00 607
转载 Golang的方法集继承规则示例
本篇通过具体示例来展现 Golang 机制中 methods set 的继承规则。0x00 简单method的规则首先,我们声明示例的基本操作结构体。Go1234type Cat struct{ Name string Color string}我们声明了一个 Cat 的 type,在它的基础上我们声明一个Meow的method:Go123func (c Cat) Meow() { ...
2018-06-06 11:23:56 2559
转载 Go 反射实践及剖析
Go struct拷贝在用Go做orm相关操作的时候,经常会有struct之间的拷贝。比如下面两个struct之间要拷贝共同成员B,C。这个在struct不是很大的时候从来都不是问题,直接成员拷贝即可。但是当struct的大小达到三四十个成员的时候,就要另辟蹊径了。12345678910111213type A struct { A int B int C string E...
2018-06-06 11:21:18 316
转载 golang的goroutine调度机制
调度器主要基于三个基本对象上,G,M,P(定义在源码的src/runtime/runtime.h文件中)1. G代表一个goroutine对象,每次go调用的时候,都会创建一个G对象2. M代表一个线程,每次创建一个M的时候,都会有一个底层线程创建;所有的G任务,最终还是在M上执行3. P代表一个处理器,每一个运行的M都必须绑定一个P,就像线程必须在么一个CPU核上执行一样...
2018-06-06 11:18:39 519
转载 在调试器里看Windows 10的Linux子系统
Windows 10是微软第三代NT团队的力挽狂澜之作,大刀阔斧地改造革新,目标是重塑Windows(Reinvent Windows)!在众多新特征中,Linux环境子系统(WSL)无疑是最具开创性和最拉风的一个。启用WSL在2016年3月30日开幕的Build大会上,微软向广大开发者宣布Windows 10将支持Linux应用。在2016年4月7号推送的 Windows 10 build 14...
2018-06-06 10:59:57 706
转载 BufferedInputStream与BufferedOutputStream用法简介
BufferedInputStream是带缓冲区的输入流,默认缓冲区大小是8M,能够减少访问磁盘的次数,提高文件读取性能;BufferedOutputStream是带缓冲区的输出流,能够提高文件的写入效率。BufferedInputStream与BufferedOutputStream分别是FilterInputStream类和FilterOutputStream类的子类,实现了装饰设计模式。...
2018-04-11 13:56:01 772
原创 GO 语言简介
Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。Go是谷歌2009发布的第二款编程语言。2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用的一种BASIC语言.北京时间2010年1月10日,Go语
2017-12-25 15:33:23 268
转载 JAVA简介
背景Java是一门计算机编程语言。它的前身是由Sun公司开发的Oak语言,1995年更名为Java面世。2009年,甲骨文收购Sun,现属于甲骨文公司。编程环境JDK(Java Development Kit):称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境JRE,一些Java
2017-12-25 15:30:25 321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人