yoko blog

非常程序员


  • 首页

  • 所有文章

  • 书签

  • 关于我

  • 友链

  • 站内搜索

如何分析golang程序的内存使用情况

发表于 2019-04-06 | 分类于 Go
| 热度:
| 字数统计: 3.4k
# Go # Go tips&tricks # 环境搭建|工具使用

前言

本篇文章介绍如何分析golang程序的内存使用情况。包含以下几种方法的介绍:

  1. 执行前添加系统环境变量GODEBUG='gctrace=1'来跟踪打印垃圾回收器信息
  2. 在代码中使用runtime.ReadMemStats来获取程序当前内存的使用情况
  3. 使用pprof工具

注意,本篇文章前后有关联,需要顺序阅读。

从十来行的demo开始

阅读全文 »

[译] Go References - The Go Memory Model | golang官方文档中文翻译之内存模型

发表于 2019-04-04 | 分类于 Go
| 热度:
| 字数统计: 3.2k
# Go # Go tips&tricks # 中文翻译

前言

本篇译文对应的原文
标题:The Go Memory Model - Go References
作者:Go官方文档
地址:https://golang.org/ref/mem

本文标明yoko备注的内容是我自己写的备注,其余的都是对英文原文的翻译。

目录

  • 简介
  • 建议
  • Happens Before
  • 同步
    • init function
    • 创建协程
    • 销毁协程
    • 使用channel通信
    • 锁
    • Once
  • 示范错误的同步原语使用方法

简介

阅读全文 »

golang的channel和条件变量在单生产单消费场景下的性能对比测试

发表于 2019-04-02 | 分类于 Go
| 热度:
| 字数统计: 1.3k
# Go # Go channel

本文相应的代码附在文章末尾处。

场景描述

  1. 1个生产者只与1个消费者相互绑定。
  2. 生产者按固定生产频率,每间隔<PRODUCE_INTERVAL_MS>毫秒生产一个任务。
  3. 生产者每次生产时都检查当前任务队列大小,如果已经超过<QUEUE_NUM_CANCEL_PRODUCE>,则丢弃本次生产的任务。(即消费能力低于生产能力时如何处理)
  4. 总共有<PAIR_NUM>对(pair)单生产者单消费者对,对与对之间没有逻辑关联。(增大模拟性能场景)

测试方法

阅读全文 »

centos安装golang

发表于 2019-03-29 | 分类于 环境搭建|工具使用
| 热度:
| 字数统计: 328
# Go # 环境搭建|工具使用

前言

golang目前采用二进制文件的发布方式,所以安装十分简单。

步骤

阅读全文 »

c++11中的std::tuple元组和std::tie

发表于 2019-03-28 | 分类于 c/c++
| 热度:
| 字数统计: 1k
# c/c++

功能简介

std::tuple是c++11提供的新模板类,在很多流行语言都有对应的实现,一般翻译为元组。使用它可以把多个不同类型的变量组合成一个对象。

简单示例

阅读全文 »

centos6 使用devtoolset一键升级和切换gcc/g++版本支持c++11/c++14特性

发表于 2019-03-27 | 分类于 环境搭建|工具使用
| 热度:
| 字数统计: 484
# 环境搭建|工具使用 # gcc/g++

centos6默认的gcc版本比较老,为4.4.7,不支持c++11。我们可以通过yum快速安装devtoolset一键升级和切换gcc/g++版本支持c++11/c++14特性。升级后的版本独立不影响系统环境,且可以在多个版本间自由切换。
以下介绍devtoolset-3(对应gcc version 4.9.2,支持c++11)和devtoolset-7(对应gcc version 7.3.1,支持c++14)的安装以及使用方式。

查看当前版本

阅读全文 »
1…1011
yoko

76 日志
10 分类
32 标签
RSS
GitHub

开源项目
🍀 lal: Go 直播服务器.
🍀 naza: Go 基础库.
🍀 libchef: c++ 基础库.
© 2019 — 2020 yoko 京ICP备19024469号
0%