泛型(Generics)是C#中的一种强大的强类型扩展机制,在申明时用“占位符”类型参数“T”定义一个“模板类型”,比较类似于C++中的模板。泛型在使用时指定具体的T类型,从而方便的封装、复用代码,提高类型的安全性,减少类型转换和装箱。 ...
一:背景 1. 讲故事 现如今的很多代码都是awaitasync+Task的方式,对它们进行性能洞察非常有必要,awaitasync 本质上就是将状态机塞入到 Task 的 m_continuationObject 延续字段上,和 ContinueWith 没有本质区别,这一篇我们就来聊一聊。 二: ...
在开始之前说明一下,你不要指望阅读完本文后会得到光,就算得到光你也未必能变成迪迦。本文老周仅介绍原理,可以给部分大伙伴们解惑。 咱们都知道,在派生 DbContext 类时,集体类的集合用 DbSet<TEntity> 表示,而咱们最常用的方法是在 DbContext 的派生类中公开 DbSet<T ...
简介 var, let and const是JavaScript中三种定义变量的方式,它们之间有什么区别呢?这是前端面试中常见的一道题,今天我们来一文说透它。 let和const区别不大,主要是const声明的是常量,不可修改,而let声明的变量是可修改的。所以我们重点放在var和let上。 变量初 ...
本来昨天在看 spring frame的八股, 看到了IOC部分,但是实在看不懂是什么东西,讲是讲源码部分,但又不完全讲,我想着那我要不自己看一下源码 这是我画的Bean Factory的大致关系图 删去了bean别名管理接口(AliasRegistry)和bean定义接口(BeanDefiniti ...
前言 Tesseract 是世界上最知名、应用最广泛的开源 OCR 引擎。它由 Google 积极维护,功能强大,支持多种语言和平台。虽然它在处理理想条件下的印刷文本时表现出色,但其精度会受到图像质量和复杂性的影响。它通常作为核心引擎被集成到各种应用程序、脚本和更大型的系统中,是许多需要文本提取功能 ...
随着OSD的更替和集群的扩缩容,PG在OSD的分布会逐渐变的不均衡,导致各OSD的实际容量使用率出现差异,集群整体使用率降低。ceph balancer模块就是通过调整权重或者upmap指定pg映射来让pg分布均匀的模块,分为upmap模式和crush-compat模式,本文基于Pacific版本, ...
作为一个在嵌入式领域摸爬滚打了近10年的老兵,看到这个问题时心情五味杂陈。32岁入行STM32迟吗?说实话,如果你问我这个问题的时候我还是24岁的小白,我可能会觉得"哇,32岁才开始学单片机,是不是有点晚了?"但现在30岁的我,经历了从机械专业跨界到嵌入式、从打工到创业的全过程后,我想说:兄弟,32 ...
字数 1128,阅读大约需 6 分钟 一次 .NET 性能优化之旅:将 GC 压力降低 99% 前言:问题的浮现 最近,我使用 ScottPlot 库开发一个频谱分析应用。应用的核心功能之一是实时显示频谱图,这可以看作是一个高频刷新热力图(Heatmap)。然而,在程序运行一段时间后,我注意到整体性 ...
AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了 ...
一:背景 1. 讲故事 分析托管和非托管内存暴涨,很多人潜意识里都会想到抓dump上windbg分析,但我说可以用dottrace同样分析出来,是不是听起来有点让人惊讶,哈哈,其实很正常,它是另辟蹊径采用底层的ETW机制,即开启 windows 底层日志,所以 dottrace 可以做,官方血统的 ...
目录1. 是什么2. 如何使用3. 原理分析3.1. uml3.2. 构造方法3.3. add方法3.3.1. 确保容量足够容纳新的元素3.3.2. 把元素放入数组最后一个位置3.4. remove方法【按下标删除元素】3.4.1. 把数组index位置之后的数据往前挪3.4.2. 更新size【数 ...
六月进入了紧张的996冲刺节奏,一个月下来周围的兄弟们看着都眼神迷离,面色阴沉,着实疲惫。幸运的是最后一个周末通知大家不用继续加班,我也好腾出手来写点东西,长时间停更让人脑袋空空,思来想去决定探索一个之前听说过觉得好玩,但是又没有实践过的东西-火焰图。 何为火焰图 火焰图将一组堆栈跟踪(又名调用堆栈 ...
Swag是一个将Go语言注释自动转换为Swagger 2.0文档的工具,支持多种流行Go Web框架。通过简单的注释即可生成完整的API文档,支持Swagger UI集成,大大简化了API文档编写工作。 ...
在Java持久层技术体系中,**Hibernate**作为经典的ORM(对象关系映射)框架,通过自动化对象与数据库表的映射关系,显著提升了数据访问层的开发效率。 ...
在Node.js的世界里,写一个矩阵乘法函数或许只需百行代码,但要构建一个能与NumPy媲美的科学计算库,却堪比在沙漠中种树——技术的种子早已埋下,缺乏的是滋养生态的绿洲。这不是语言能力的边界,而是一场关于开发者选择的博弈。 ...
我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。 _MINIMUM_GIGA_SCN方式推进SCN的值 Oracle 12C通过EVENT来 ...
前言 在技术快速迭代的今天,开发效率决定了职业天花板的高度。 经过多年的工作经验,我发现顶级程序员都有一个共同点:他们不仅是优秀的编码者,更是工具链的架构师。 本文将分享我实践验证的13大效率神器,助你成为5倍效能的超级开发者。 希望对你会有所帮助。 一、IntelliJ IDEA:开发者的核武器 ...
目录1. 是什么2. 如何使用3. 原理分析3.1. uml3.2. 构造方法3.2.1. 队列的节点Node3.3. add方法3.3.1. 插入到链表尾部3.3.2. 构造新节点【prev指向尾节点,next为null】3.3.3. 更新尾节点3.3.4. 更新size3.4. addLast方 ...
C++服务开发环境-万事开头难 对于开发人员来说,仅仅学习编程语言的语法是不够的,还需要学习这门编程语言对应的构建流程,不然写出来的代码怎么变成程序运行起来呢? 出生较晚的编程语言,如golang、python等,都有对开发者友好的构建工具链,golang开发者仅仅需要花少量时间就能学会go mod ...