golang
文章平均质量分 90
壹零仓
勇敢 自信 冷静 乐观
展开
-
golang之跨语言ipc通信
由于IPC通信的文章,在百度上一搜一大把,这里就不做系统性的介绍,只介绍golang与C++跨语言的进程通信方式:unix domain Socket,这种方式也是文章中介绍比较少的,文章大都集中在AF_INET类型的socket,通过127.0.0.1回环进行通信,此种方式与AF_UNIX相比,需要经过网络层处理,性能下降了一两倍,而AF_UNIX类型的socket,不经过网络层,几乎相当于进程间内存拷贝,性能非常高,且可以跨编程语言,针对需要跨语言的进程通信,推荐此种方式。其他通信方式可参考:GOLAN原创 2022-09-28 14:52:41 · 89030 阅读 · 0 评论 -
golang性能分析工具pprof介绍
profile在计算机领域,我们可以将其理解为当前应用程序运行状态的画像。当程序性能不佳时,我们希望知道应用在 什么地方耗费了多少 CPU、memory等资源,golang是非常注重性能的语言,其内置的pprof就是为了分析调优程序运行性能而生。CPU profile:当前程序的CPU使用情况,pprof按照一定频率去采集应用程序在CPU和寄存器上面的数据Memory Profile(Heap Profile):当前程序的内存使用情况,可查看heap和alloc的情况。原创 2022-09-09 11:00:16 · 6451 阅读 · 0 评论 -
vscode配置golang远程开发调试环境
在golang项目开发中,特别是需要跨平台的项目时,很多时候需要在远程环境下进行开发、编译、调试,比如嵌入式linux场景,我们在windows下开发好的代码,可能需要在linux环境运行,需要在此环境下编译程二进制文件,再运行,如果遇到问题,很多时候只能通过izhi来定位,如果要验证修改的代码,可能还需要先上传到linux开发环境,进行编译->运行->根据日志再定位的过程,特别繁琐,这里vscode提供了强大的远程开发/编译/断点调试等功能,这里介绍下golang的远程开发调试环境搭建方式。...原创 2022-09-01 11:55:32 · 90708 阅读 · 0 评论 -
golang进程启动及监控
由于近期项目需要,使用go预研开发边缘智能程序,因此就想着通过golang实现进程守护及进程监控的功能,在golang程序中启动子进程,有很好的封装exec.Command,导入包为os/exec,本文主要以此种方式实现,包含以下两种实现方式。...原创 2022-09-01 11:32:12 · 89594 阅读 · 0 评论 -
golang中channel使用
Go并发是源自CSP模型,通过channel来实现协程的同步,Go并发不通过共享内存来通信,而是通过通信来共享内存,Go内建channel实现了go协程之间数据的读写相关操作,通道(channel)是一种特殊的类型,在任何时候,同时只能有一个 goroutine 访问通道进行发送和获取数据。channel可以看作一个消息队列,遵循先进先出的原则,从而保证了收发数据的顺序性。channel本身是一个队列,先进先出线程安全,不需要枷锁,但是如果传递数组指针或者其他非线程安全的指针或引用,需要额外做好保护。...原创 2022-09-01 10:31:38 · 89016 阅读 · 1 评论 -
golang 切片(slice)简单使用
切片(slice)是Golang中数组之上的抽象;Len intCap int}Data:指向底层数组的指针Len:切片中元素的个数;len(s)获取Cap:切片的容量(不需重新分配内存前,可容纳的元素数量);cap(s)获取var (a []int // nil切片,和nil相等,一般用来表示一个不存在的切片b = []int{} // 空切片,和nil不相等,一般用来表示一个空的集合c = []int{1, 2, 3} // 有3个元素的切片,len=3,cap=3。......原创 2022-09-01 10:29:03 · 165231 阅读 · 0 评论 -
golang高并发特性goroutine介绍
在具体说goroutine使用方法之前,先介绍下其基本原理和相关概念,如果只是想知道如何使用,直接跳到第二节。首先介绍下介个概念并发、进程、线程和携程。并发的概念在很早之前,计算机只有单核心,开发语言冶金本上是按照顺序书写代码逻辑,用户一次直接能提交一个作业,计算机同时只能做一件事。但是随着计算机技术的发展,软件设计越来越复杂,以及CPU/内存/硬盘等IO速度的巨大差异造成的读写等待,这种单进程顺序执行的方式,无法满足场景应用。goroutine原理https。.........原创 2022-07-15 16:41:09 · 164145 阅读 · 0 评论 -
golang 多项目工作区搭建
初次接出golang,我们参照上篇文章,很快就可以使用vscode搭建好继承开发环境,并创建了自己的项目在同一个项目中,我们很容易的采用mod方式进行依赖包及版本管理,但是现实红中,可能一个系统分为多个子项目,每个项目都可能有人单独开发,最后有人多项目调试,如果是多项目调试,每个项目都有自己的mod,我们可以通过把项目包上传后,再拉取的方式来引用,但是无法直接本地提示,如果要做到本地调试,且不改变原来的依赖路径,我们怎么做呢?............原创 2022-07-15 16:39:31 · 166125 阅读 · 0 评论 -
vscode 配置golang开发环境
本文基于vscode搭建golang的集成开发环境,为什么选择vscode,就因为我用的习惯,下面介绍下如何在vscode下搭建go环境,vscode及go语言安装这里不做介绍,直接下载包安装即可,下面主要介绍下如何配置及使用的插件。......原创 2022-07-15 16:37:05 · 168511 阅读 · 1 评论 -
go语言介绍及应用场景分析
golang特定、应用场景及简单的使用介绍原创 2022-07-15 16:32:28 · 168439 阅读 · 0 评论