Go 语言汇编快速入门

在 Go 的源码中包含大量汇编语句,最优秀的示例代码位于 `math/big`, `runtime` 和 `crypto` 这些库中,但是从这里入门的话实在太过于痛苦,这些示例都是着力于系统操作和性能的运行代码。 对于没有经验的 Go 语言爱好者来说,这样会使通过库代码的学习过程遇到很大困难 。这也是撰写本文的原因所在。 Go ASM ( 译者注:ASM 是汇编的简写 ) 是一种被 Go 编译器使用的特殊形式的汇编语言,而且它基于 Plan 9 (译者注:来自贝尔实验室的概念[网络操...阅读全文

2018-04-18 16:13:00 polaris
阅读:9914 评论:1

Golang - 调度剖析【第一部分】

简介 首先,Golang 调度器的设计和实现让我们的 Go 程序在多线程执行时效率更高,性能更好。这要归功于 Go 调度器与操作系统(OS)调度器的协同合作。不过在本篇文章中,多线程 Go 程序在设计和实现上是否与调度器的工作原理完全契合不是重点。重要的是对系统调度器和 Go 调度器,它们是如何正确地设计多线程程序,有一个全面且深入的理解。 本章多数内容将侧重于讨论调度器的高级机制和语义。我将展示一些细节,让你可以通过图像来理解它们是如何工作的,可以让你在写代码时做出更好的决策。因为原理和语义是...阅读全文

阅读:3968 评论:1

给以后的同学攒点golang的面经

只要活着,就不算是悲剧。我们尚在途中,今后仍要继续。——《火花》戳 -> 校招-面经我主要用的还是go,虽然语言不是很重要,但投的基本上是跟go有关的公司,也有一些c++的公司,想往go发展的可以参考我的面经春招春招基本上是过完年回来开始,建议寒假开始复习然后回来就可以找实习了。我春招投的比较晚,后面投的公司不是很多,基本被刷简历,能面试的只有七牛云,然而第一次面试被各种吊打,春招后面去了深圳一家小公司实习了两个月七牛云七牛云的技术还是不错的,虽然实习不想去上海(建议实习不要看地点,实习很短不要...阅读全文

2018.12.07 13:29 牛客网
阅读:12459 评论:0

史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等

继续最全Java面试答案系列篇,已经持续的更新了最全mysql、spring、多线程等面试答案。本文篇幅过长,建议收藏后慢慢细看,希望能对你的面试之旅有所帮助!文末有该最全系列答案获取方式哦~Redis支持哪几种数据类型?支持多种类型的数据结构1.string:最基本的数据类型,二进制安全的字符串,最大512M。2.list:按照添加顺序保持顺序的字符串列表。3.set:无序的字符串集合,不存在重复的元素。4.sorted set:已排序的字符串集合。5.hash:key-value对的一种集合...阅读全文

2018-12-11 17:43:09 Javaspring12
阅读:1866 评论:0

开发如何避免redis集群访问倾斜和数据倾斜

[TOC] 概述 redis 集群部署方式大部分采用类 Twemproxy 的方式进行部署。即通过 Twemproxy 对 redis key 进行分片计算,将 redis key 进行分片计算,分配到多个 redis 实例中的其中一个。tewmproxy 架构图如下: 由于 Twemproxy 背后的多个 redis 实例在内存配置和 cpu 配置上都是一致的,所以一旦出现访问量倾斜或者数据量倾斜,则可能会导致某个 redis 实例达到性能瓶颈,从而使整个集群达到性能瓶颈。 hot key出现...阅读全文

阅读:2733 评论:0

20 个好用的 Go 语言微服务开发框架

作者 | Peter Wayner译者 | 阿拉丁2007 年,谷歌的一个团队在调研计算机编程语言时,发现有数百种可用于开发软件的语言,但没有一种能提供谷歌真正需要的特性。有些语言太过底层,有些又太过复杂,有些特性对他们来说反而会碍手碍脚。谷歌的开发人员想要的语言要简单到可以在几个小时内学会,但又要复杂到足以应付现代互联网的信息流。他们的解决方案就是 Go 语言,这门语言对于 C 语言、Java 或 JavaScript 程序员来说——换句话说,就是所有的程序员——都很容易掌握。Go 语言提供了...阅读全文

阅读:41466 评论:0

面试Python工程师会问哪些问题?需要准备什么?

随着互联网的发展,python语言现在变得越来越火爆,Python程序员越来越受到大家的青睐!那么想进入Python行业,面试时需要注意些什么问题呢?我们在参加Python开发岗位面试的时候都要做哪些准备?一般Python技术方面的面试会问哪些问题? 今天,我们从2位面试官的角度来看看,参加 Python 开发岗面试需要做哪些准备。(一)我之前在豆瓣负责过一段时间我们组的技术面试。由于现在不再去面试,可以爆一爆。1. 我从来不问google可获得的答案的问题, 只是问问面试者「在过去的工作中,遇...阅读全文

2018.12.31 14:09 长情且温柔
阅读:683 评论:0

总结了才知道,原来channel有这么多用法!

这篇文章总结了channel的10种常用操作,以一个更高的视角看待channel,会给大家带来对channel更全面的认识。 在介绍10种操作前,先简要介绍下channel的使用场景、基本操作和注意事项。 channel的使用场景 把channel用在数据流动的地方: 消息传递、消息过滤 信号广播 事件订阅与广播 请求、响应转发 任务分发 结果汇总 并发控制 同步与异步 ... channel的基本操作和注意事项 channel存在3种状态: nil,未初始化的状态,只进行了声明,或者手动赋值为...阅读全文

阅读:1048 评论:1

gRPC入门

这篇文章是给别人写的,不是我要写的。我也来卖个萌,嘎嘎!!—— 时间飞逝 如一名携带信息的邮差 但那只不过是我们的比喻 人物是杜撰的 匆忙是假装的 携带的也不是人的讯息 为什么使用grpc 主要包括以下两点原因: protocl buffer一种高效的序列化结构。 支持http 2.0标准化协议。 很对人经常拿thrift跟grpc比较,现在先不发表任何看法,后续会深入thrift进行介绍。 http/2 HTTP/2 enables a more efficient use of networ...阅读全文

2019-01-27 21:34:42 neojos
阅读:1092 评论:0

大话图解golang map

前言 网上分析golang中map的源码的博客已经非常多了,随便一搜就有,而且也非常详细,所以如果我再来写就有点画蛇添足了(而且我也写不好,手动滑稽)。但是我还是要写,略略略,这篇博客的意义在于能从几张图片,然后用我最通俗的文字,让没看过源码的人最快程度上了解golang中map是怎么样的。 当然,因为简单,所以不完美。有很多地方省略了细节问题,如果你觉得没看够,或者本来就想了解详细情况的话在文末给出了一些非常不错的博客,当然有能力还是自己去阅读源码比较靠谱。 那么下面我将从这几个方面来说明,你...阅读全文

2019.06.10 17:00* LinkinStar
阅读:2522 评论:0

Go 中的垃圾回收:第一部分 - 基础

这是三篇系列文章的第一篇博文,系列文章提供了 Go 中垃圾回收背后的机制和概念的理解。这篇博文主要介绍回收器的基础概念。 三篇系列文章的索引: 1) [Go 中的垃圾回收:第一部分 - 概念](https://studygolang.com/articles/21569) 2) [Go 中的垃圾回收:第二部分 -GC 追踪](https://studygolang.com/articles/21570) 3) 即将诞生 ## 简介 垃圾回收器负责跟踪堆内存分配,释放无...阅读全文

阅读:2987 评论:3

Go 语言实战: 编写可维护 Go 语言代码建议

介绍 大家好,我在接下来的两个会议中的目标是向大家提供有关编写 Go 代码最佳实践的建议。 这是一个研讨会形式的演讲,不会有幻灯片,而是直接从文档开始。 贴士: 在这里有最新的文章链接https://dave.cheney.net/practical-go/presentations/qcon-china.html 编者的话 终于翻译完了 Dave 大神的这一篇《Go 语言最佳实践》 耗时两周的空闲时间 翻译的同时也对 Go 语言的开发与实践有了更深层次的了解 有兴趣的同学可以翻阅 Dave 的...阅读全文

2019-07-29 19:32:32 法克喜特
阅读:959 评论:0

进程与线程的区别

逻辑上来说,一组线程属于一个进程,或者说一个进程可以包含很多线程。为了实现并发,一个进程中可以起很多个线程。这些线程协作完成进程的运行逻辑; 对操作系统而言,进程是资源分配的基本单元,线程是cpu调度的基本单元;比如一个进程内的所有线程共享同一个地址空间,而不同进程的地址空间是相互独立的; 从通信上来说,进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性; 从线程模型来看,用户级线程与内核线程的对应关系有1:1, N:1, ...阅读全文

2019.10.08 11:24:03 aside section . 等
阅读:1211 评论:0

Golang 的 协程调度机制 与 GOMAXPROCS 性能调优

前序正确地认识 G , M , P 三者的关系,能够对协程的调度机制有更深入的理解! 本文将会完整介绍完 go 协程的调度机制,包含:调度对象的主要组成各对象的关系 与 分工gorutine 协程是如何被执行的内核线程 sysmon 对 gorutine 的管理gorutine 协程中断挂起 与 恢复GOMAXPROCS 如何影响 go 的并发性能BTW:本人技术书籍《区块链以太坊DApp开发实战》现已出版并可网购了,适合初中级区块链技术相关研发人员阅读。目录调度器的三个基本对象G,M,P 三者...阅读全文

阅读:767 评论:0

golang 1.8 gc的演进

在java的gc中,主要有三种算法,即:标记-删除,标记-整理,复制,网上有很多资料介绍相关内容,其中标记主要是为了找到内存中不可达的对象,并将其回收。而gc过程中最关键的指标就是STW时间,如果STW过长,会影响整体程序的响应。 Serial Serial 采用单一线程进行GC。 特点:STW时间长,但是无线程切换开销,简单高效 ParNew ParNew 与Serial一样,只是在新生代采用并发gc CMS CMS CMS收集器主要用于老年代内存的回收,致力于降低STW时间,但是却拉长了gc...阅读全文

2019-12-08 01:33:00 淡泊宁静_3652
阅读:1044 评论:0

Golang三色标记、混合写屏障GC模式图文全分析

原创声明:未经作者允许请勿转载, 如果转载请注明出处作者:刘丹冰Aceld, 微信公众号同名 垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的对象,让出存储器资源,无需程序员手动执行。 ​ Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可并发运行,但需要一定时间的STW(stop the world),STW的过程中,CPU不执行用户代码,全部用于垃圾回收,这个过程的影响很大,Golang进行了多次...阅读全文

阅读:10135 评论:6

两年经验拿到蚂蚁/头条 Offer(面经分享)

分享一篇面经,作者拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer。下面是该作者的经验分享: 准备过程 我自己是本科毕业后在老东家干了两年多,老东家算是一家”小公司”(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因此找坑的时候是非常非常虚的。迫于心慌,我好好思考了一阵来给自己打气,当时真正找坑和准备面试的过程大概分为这几个阶段: 反思:自己是不是真的要离职,假如不离职,在老东家接下来应该做什么才能继续提升?...阅读全文

2020-12-03 16:33:42 乐学小乐
阅读:2226 评论:0

云原生项目实践DevOps(GitOps)+K8S+BPF+SRE,从0到1使用Golang开发生产级麻将游戏服务器—第1篇

banner.png 项目初探 项目地址: 原项目:https://github.com/lonng/nanoserver 调过的:https://github.com/Kirk-Wang/nanoserver 这将是一个完整的,完全践行 DevOps/GitOps 与 Kubernetes 上云流程的 Golang 游戏服务器开发的系列教程。 这个系列教程是对开源项目 Nanoserver 的完整拆解,旨在帮助大家快速上手 Golang(游戏)服务器后端开发。通过实践去理解 Golang 开发...阅读全文

2021-02-01 18:34:32 Hi为少
阅读:444 评论:0