首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
go
订阅
MIT丶兮夜
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
零拷贝原理以及实践
零拷贝原理 零拷贝技术的原理本质上就是减少数据的拷贝次数,因为当调用传统read write方法读取文件内容并返回给客户端的时候,会经过四次拷贝。我用golang代码举例如下 如上面代码所示,如果我们
技术的成长曲线
小李毕业后在一家公司做软件工程师,转眼间,一年多的时间已经过去了。 回想刚毕业那会,他是怀着无比忐忑的心情进入了这家公司的技术部门。各种新奇的开发工具,叫不上名字的众多软件框架,庞大的代码库,井然有序的工作流程,都是小李以前在学校里不曾遇到过的,这让他感到了前所未有的压力。于是…
理解golang调度之一 :操作系统调度
golang调度器的设计行为能够使你的多线程go程序更有效率、性能更好,这要归功于golang调度器对于操作系统调度器的支持。对于一个golang开发者来说,同时深刻理解操作系统调度和golang调度器工作原理,能够让你的golang程序设计和开发走到正确道路上。 操作系统调度…
【译】 Golang 中的垃圾回收(一)
垃圾回收器负责追踪堆内存的分配,释放掉不需要的空间,追踪那些还在使用的分配空间。不同编程语言对这个机制的实现都很复杂,但是开发人员开发软件时候并不需要了解垃圾回收太细节的东西就能进行构建。另外,不同发布版本编程语言的VM和runtime也总是在改变和进化。对于应用开发人员来说,…
【译】 Golang 中的垃圾回收:Go Traces(二)
第一部分,我花了时间去描述了golang 垃圾收集器的行为,并说明了程序运行时候收集器所产生的延迟。我分享了怎么样去产生以及去解释GC traces。并展示了堆内内存如何改变,并且解释了GC不同阶段对延迟代价的影响。 最后的结论是,如果你减少了堆的压力,你就会减少延迟代价并提高…
【译】 Golang 中的垃圾回收(三):Go Pacing
通过前两节的说明,我们得出这样一个结论:如果降低堆内存的分配压力就会相应的减少延迟,从而提升程序性能。这一节来讲一下,给一种类型的工作负载,GC的pacing算法是怎么来确定最佳回收速率的。 程序是做了这样一件事情,给一个特定topic,要确定它在文档集中出现的频率。程序包含了…
我可能并不会使用golang slice
使用了很多的slice,最近再准备面试的时候,才发现,自己对他是一知半解的,倘若问几个比较戏剧性的问题,发现自己还是第一时间无法给出正确答案的,所以今天,系统性的整理一下有关slice的一些知识点。 首先看第一个问题。实例化切片后,进行append操作 当我们在执行make([…
图解golang里面的读写锁实现与核心原理分析了解编程语言背后设计
基础筑基读写锁的特点读写锁区别与互斥锁的主要区别就是读锁之间是共享的,多个goroutine可以同时加读锁,但是写锁与写锁、写锁与读锁之间则是互斥的写锁饥饿问题因为读锁是共享的,所以如果当前已经有读锁
理解golang调度之二 :Go调度器
第一篇文章解释了关于操作系统层级的调度,这对于理解Go的调度是很重要的。这一部分我会在语义层级解释Go调度器是如何工作的,并且着重关注它的一些高级特性。Go 调度器是一个十分复杂的系统,特别细节的地方不重要,重要的是对于它的工作模式有一个好的理解,这会让你做出更好的工程方面的决…
理解golang调度之三:并发
当我在解决一个问题尤其是新问题的时候,我开始不会去考虑并发(concurrency)是否合适。我首先会去找一系列的解决方式然后确保它有效。然后在可读性和技术方案评估之后,我会开始去考虑并发是否实际合理。有些时候并发的好处是显而易见的,但是有时候并不是很明显。 第一篇文章,我解释…