切片slice,是一个指针管理器,指向数据区域。在range 遍历时,获取到的值是一个变量的拷贝,不是迭代器。所以,后面的值会
原创 2022-12-21 10:33:31
72阅读
by sheepbao 主要大概介绍go语言的历史和特性,简单的入门。 来历 很久以前,有一个IT公司,这公司有个传统,允许员工拥有20%自由时间来开发实验性项目。在2007的某一天,公司的几个大牛,正在用c++开发一些比较繁琐但是核心的工作,主要包括庞大的分布式集群,大牛觉得很闹心,后来c++委员
转载 2017-01-25 21:29:00
90阅读
2评论
# 使用 Go 和 MongoDB 游标特性 在我们开发应用的过程中,如何有效地从 MongoDB 数据库中获取数据非常重要。今天,我将带你一步一步了解在 Go 语言中如何实现 MongoDB 游标特性。 ## 总体流程 在使用 Go 操作 MongoDB 游标时,主要遵循以下几个步骤: ```mermaid flowchart TD A[导入MongoDB驱动] --> B[连接
原创 9月前
76阅读
Go 1.0[1] - 2012 年 3 月: 随着 Go 第一个版本发布的还有一份兼容性说明文档[2] 。该文档承诺,Go 的未来版本会尽可能确保向后兼容性,不会破坏现有程序。 For instance, code that runs under Go 1.2 should be compatib
原创 2023-04-19 20:28:55
1776阅读
Go 1.0[1] - 2012 年 3 月: 随着 Go 第一个版本发布的还有一份兼容性说明文档[2] 。该文档承诺,Go 的未来版本会尽可能确保向后兼容性,不会破坏现有程序。
原创 2023-04-21 16:37:41
1037阅读
协程协程是golang最重要的一个特性。在协程出现之前,线程被作为调度的最小单位。协程可以理解是一种用户态,逻辑层面的线程。 通过协程,我们将很容易地实现高并发。 加入你要做三件事,假设要执行a,b,c三个方法。代码该怎么写?平常我们的写法就是a() b() c() 复制代码只有a做完了,才能做b,b做完了,才能做c。 但有了协程就可以go a() go b() go c() 复制代码三个同时进行
原创 2021-04-04 19:35:24
337阅读
Channels的可靠发送 可靠保证的通信发送接受基于这么个场景“我是否需要保证已收到特定goroutine发送的信号?”,来看看下面的例子: go func() { p := <-ch // Receive }() ch <- "paper" // Send 发送goroutine是否需要保证第二行的goroutine接收ch通道的字符串才可以继续?根据这个简单问题,
转载 2020-07-23 13:54:00
131阅读
2评论
1.信号通知经常会有这样的场景,当信息收集完成,通知下游开始计算数据func main() { isOver := make(chan struct{}) go func() { collectMsg(isOver) }() <-isOver calculateMsg()}// 采集func collectMsg(isOver chan
原创 2022-05-28 16:49:05
5497阅读
Go语言的并发编程模型以轻量级Goroutine和CSP通信机制为核心,支持高并发、低开销的并发任务调度与协调。通过M:N调度模型,成千上万的Goroutine可在少量OS线程上高效运行。Channel用于Goroutine间通信与同步,避免数据竞争,提升程序安全性。此外,Go还提供`sync.Mu... ...
转载 1月前
368阅读
逃逸分析 逃逸分析是指由编译器决定内存分配的位置,不需要程序员指定,不逃逸的放栈上,可能逃逸的都要放在堆上,在函数中申请一个新的对象: 如果分配在栈中,则函数执行完成后自动将内存进行回收 如果分配在堆中,则函数执行完成之后可交给垃圾回收器进行回收 栈和堆 应用程序在运行时只会存在一个堆,程序运行器将 ...
转载 2021-08-26 15:01:00
133阅读
2评论
Golang逃逸分析 介绍逃逸分析的概念,go怎么开启逃逸分析的log。 以下资料来自互联网,有错误之处,请一定告之。 sheepbao 2017.06.10 什么是逃逸分析 wiki上的定义 In compiler optimization, escape analysis is a method
转载 2022-10-05 23:18:16
45阅读
变量和栈有什么关系栈可用于内存分配,栈的分配和回收速度非常快。下面代码展示栈在内存分配上的作用,代码如下:func calc(a, b int) int { var c int c = a * b var x int x = c * 10 return x}代码说明如下:第 1 行,传入 a、b 两个整型参数。第 2 行,声明 c 整型变量,运行时,c 会分配一段内存用以存储 c 的数值。第 3 行,将 a 和 b 相乘后赋予 c。第 5 行
原创 2021-06-01 12:27:09
686阅读
带GC语言给我们程序的编写带来了极大的便利,但是与此同时屏蔽了很多底层的细节,比如一个对象是在栈上分配还是在堆上分配。对于普通的代码
转载 2023-05-31 00:05:43
59阅读
性能分析的场景主要有CPU、Memory、IO、Goroutine、死锁几种
原创 精选 2023-05-02 07:59:45
394阅读
带GC语言给我们程序的编写带来了极大的便利,但是与此同时屏蔽了很多底层的细节,比如一个对象是在栈上分配还是在堆上分配。对于普通的代码来说虽然不需要关心这么多,但是作为强迫症程序猿,还是希望能让自己写出来的代码性能最优,所以还是需要了解什么是逃逸,以及如何判断是否发生了逃逸。
go
推荐 原创 2019-08-11 15:43:01
10000+阅读
3点赞
项目背景某企业是一家专注于车联网、视频CDN等应用技术的科技创新型企业,拥有智能车载、vsdn等多个业务系统。这些系统每天都会产生大量日志,以往的日志管理系统不能满足实时分析的需求。由于平台查询响应慢等原因,当某个系统出现问题时,所产生的日志数据无法被及时的查看,也就无法定位问题所在,造成业务人员有数据却用不起来的窘状。如何充分整合这些日志数据,充分挖掘其价值,是企业急需解决的问题。项目目标Dat
转载 2024-02-06 16:55:27
45阅读
1.优雅直观的界面 第一次上手你就会知道怎样使用你的iPhone、iPad和iPod touch。因为iOS中极具创新的Multi-Touch界面专为手指而设计。 前所未有的轻松体验从简洁美观的主屏幕开始。从内置 app 到App Store提供的 1,200,000 多款 app 和游戏从进行FaceTime视频通话到用iMovie剪辑视频你所触及的一切无不简单、直观、充满乐趣。 优雅直观的界面
转载 2023-11-09 11:46:19
157阅读
本文介绍 golang 如何做性能分析。对服务做了基准性能测试后,如果服务出现问题,可以通过性能分析工具,查出消耗资源的瓶颈,并做针对性的性能优化。Golang 语言也为我们提供了方便的性能分析工具pprof,方便我们做必要的服务优化。pprof 可以做cpu分析,统计所有调用方法执行的时间片(通过采样); 可以查看内存分配,找到是否有内存泄漏,哪里泄露了(调用栈);还可以查看Block、事件调用
pprof和trace 是golang程序性能分析中经常用到的两个工具。本文简单介绍其使用方法。1.程序中引入pprof package对于长期运行的的后台程序来说,使用package net/http/pprof 是比较便捷的选择。使用方法非常简单,只要import package的地方加上:import _ "net/http/pprof"就可以使用提供的接口包括:"/debug/pprof/
转载 2023-11-02 07:20:16
176阅读
golang语法总结关键字和注释方法运算符优先级程序结构可见性规则(公有与私有,访问权限)基本数据类型变量声明与赋值常量声明与赋值常量计数器类型零值、类型别名、类型转换运算符、指针关于++和--判断语句if循环语句选择语句switch跳转语句goto、break、continue数据array和切片slice函数处理异常结构structstruct组合方法method接口interface 关键
转载 2024-05-31 11:25:29
33阅读
  • 1
  • 2
  • 3
  • 4
  • 5