02 2023 档案

golang中的GPM(用户态的线程池)
摘要:全局队列(Global Queue):存放等待运行的 G。 P 的本地队列:同全局队列类似,存放的也是等待运行的 G,存的数量有限,不超过 256 个。新建 G’时,G’优先加入到 P 的本地队列,如果队列满了,则会把本地队列中一半的 G 移动到全局队列。 P 列表:所有的 P 都在程序启动时创建,
211
0
0
golang中的垃圾回收
摘要:golang中也使用分代概念分配内容,同样也是用标记清除算法做垃圾回收。 tiny :size < 16 bytes && has no pointer(noscan); small :has pointer(scan) || (size >= 16 bytes && size <= 32 KB);
63
0
0
C# TPL之Parallel 并行库解密
摘要:Parallel.For、Parallel.Foreach 的要求: 同样的数据类型,例如:List<T>,Dictionary<T,F>,IEnumerable<T>,等等集合类的操作 执行相同的函数:在Parallel.For或者Parallel.Foreach中只能传入一个Action,也就是
153
0
1
漫谈垃圾回收算法
摘要:GC简介:垃圾回收(Garbage Collection)也被称为自动内存管理技术,在现代编程语言中使用得相当广泛,常见的 Java、Go、C# 均在语言的 runtime 中集成了相应的实现。 对象创建,内存分配 观察对象分配时,主要有三个参与者,Application,allocator,gra
110
0
1
Redis 数据结构
摘要:本文主要描述reids数据结构和底层数据结构的实现,用于熟悉redis的底层数据结构实现原理,下图是reids的整个数据结构组成。这篇文章主要介绍value对象这部分数据结构 SDS初识 string结构对应底层SDS数据结构,SDS是redis最简单的数据结构,一般用于分布式锁和Json序列化对象
63
0
0
缓存 缓存驱逐策略总结
摘要:前言 缓存是提升性能的通用方法,现在大多数的缓存实现都使用了经典的技术。当读多写少的情况时,通常会使用缓存来提升获取数据的性能。使用缓存的方式大概有Reids、MemoryCahce、Memcached、Dictionary等等方式来实现自己的缓存,使用缓存时可能考虑最多的时如何存储数据,而不是考虑
168
0
0
C# Expression
摘要:Expression简介 表达式树又称为“表达式目录树”,以数据形式表示语言级代码,它是一种抽象语法树或者说是一种数据结构。 简述一个Expression 表达式 1是一个节点,是一个常量类型的表达式,+号是一个节点,是一个二进制类型的表达式。在Expression中每个元素都是一个独立的节点,节点
209
0
0
Sonar Qube搭建
摘要:配置基本环境 关闭selinux和防火墙 setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config systemctl stop firewalld && systemctl disable fir
106
0
0
windebug使用笔记
摘要:打开WinDbg,配置各路径 Symbol File Path(.pdb文件目录路径) srvD:\symbolshttp://msdl.microsoft.com/download/symbols Source File Path(源代码文件目录路径) C:\Users\Administrator
543
0
0