Golang入门指南


  • 首页

  • todo

  • 思考

  • life

  • food

  • OS

  • lua

  • redis

  • Golang

  • C

  • TCP/IP

  • ebpf

  • p4

  • OpenVPN

  • IPSec

  • L2TP

  • DNS

  • distributed

  • web

  • OpenWRT

  • 运维

  • Git

  • 鸟哥的私房菜

  • IT杂谈

  • 投资

  • About Me

  • 友情链接

  • FTP

  • 搜索
close

Linux内存管理小结三-其他内存相关知识

时间: 2021-07-30   |   分类: 编程杂谈     |   阅读: 1385 字 ~3分钟

其他内存相关知识——Linux内存管理小结三

【Overcommit和OOM】

​ 在Unix中,当一个用户进程使用malloc()函数申请内存时,假如返回值是NULL,说明当前系统没有足够的可用内存。一般程序都会判断malloc返回值是null时便报错退出。

阅读全文 »

Linux内存管理小结二-glibc内存管理

时间: 2021-07-30   |   分类: 编程杂谈     |   阅读: 3061 字 ~7分钟

glibc内存管理——Linux内存管理小结二

【引言】

最近在生产环境遇到一个奇怪的现象,nginx占用的虚拟内存和物理内存都很高,并且一直不会下降。

img

因为服务器本身的业务量并不大,而且对比集群其他服务器nginx才几十兆的内存消耗,第一个想到的就是内存泄漏。但是连续观察了多天,内存也没有进一步上涨,和以前遇过的内存泄漏问题不是很像。

阅读全文 »

Linux内存管理小结一-什么是物理/虚拟/共享内存

时间: 2021-07-30   |   分类: 编程杂谈     |   阅读: 2288 字 ~5分钟

什么是物理/虚拟/共享内存——Linux内存管理小结一

物理内存和虚拟内存到底有什么区别?

提到内存,我们会想到经常接触的三个词:虚拟内存、物理内存、共享内存。它们分别对应top输出中的VIRT、RES、SHR三列。

img

1. 物理内存

​ 系统的物理内存被划分为许多相同大小的部分,也称作内存页。内存页的大小取决于CPU的架构和操作系统的配置,一般为4KB。物理内存的使用主要分为以下几方面:

阅读全文 »

malloc_stats---检查内存泄露的神器

时间: 2021-07-30   |   分类: 编程杂谈     |   阅读: 1111 字 ~3分钟

在之前的博客中提到过,valgrind可以用来检测内存泄露,但在使用中,往往会遇到一些问题,给调试工作带来很多不必要的麻烦,我自己遇到的有以下两种:

(1)内存泄露误检(系统初始化时,可能有一些需要长期保存在内存中的数据结构,这些空间是永远不释放的,而这些内存会被认为绝对泄露)

(2) valgrind检查内存泄露过于全面,运行后的结果太多往往很难从中找到有用的信息。有时候,我们只需要关注某些函数,可能在执行某个操作,调用某些函数时会出现内存泄露,此时,valgrind的工作显得冗余而复杂

阅读全文 »

c运行库、c标准库、windows API的区别和联系

时间: 2021-07-30   |   分类: 编程杂谈     |   阅读: 4265 字 ~9分钟

c运行库、c标准库、windows API的区别和联系

C运行时库函数 C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的。

API函数 API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的。

阅读全文 »

为什么请求时,需要使用URLEncode做encode转码操作

时间: 2021-07-30   |   分类: 编程杂谈     |   阅读: 299 字 ~1分钟

为什么请求时,需使用URLEncode做encode转码操作

为什么要对url进行encode

发现现在几乎所有的网站都对url中的汉字和特殊的字符,进行了urlencode操作,也就是:

http://hi.baidu.com/%BE%B2%D0%C4%C0%CF%C8%CB/creat/blog/

这个样子,中间%形式的,肯定就是我的登录用户名称了吧。

阅读全文 »

如何阅读一份源代码?

时间: 2021-07-30   |   分类: 编程杂谈     |   阅读: 4030 字 ~9分钟

如何阅读一份源代码?

CONTENTS

先跑起来调试手段使用顺手的工具情景分析利用好测试用例厘清核心数据结构之间的关系整体和细节多问自己几个问题写自己的代码阅读笔记总结

我在本文的基础上做了一些补充和改进,见《如何阅读一份源代码?(2020年版)》

阅读源代码的能力算是程序员的一种底层基础能力之一,这个能力之所以重要,原因在于:

  • 不可避免的需要阅读或者接手他人的项目。比如调研一个开源项目,比如接手一个其他人的项目。
  • 阅读优秀的项目源码是学习他人优秀经验的重要途径之一,这一点我自己深有体会。

然而,读代码比写代码还是更难一些,原因在于“写代码是在表达自己,读代码是在理解别人”。因为面对的项目多,项目的作者有各自的风格,理解起来需要花费不少的精力。

阅读全文 »

gdb 提示 coredump 文件 truncated 问题排查

时间: 2021-07-27   |   分类: go     |   阅读: 5039 字 ~11分钟

gdb 提示 coredump 文件 truncated 问题排查

本文选自“字节跳动基础架构实践”系列文章。

“字节跳动基础架构实践”系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容,和大家分享团队在基础架构发展和演进过程中的实践经验与教训,与各位技术同学一起交流成长。

阅读全文 »
55 56 57 58 59 60 61 62 63

日志
分类
标签
RSS 订阅
GitHub
© 2009 - 2025
粤ICP备2021068940号-1 粤公网安备44011302003059
0%