摘要: 引子 最近开始看这个起因其实是在看项目代码时发现 实现 Disposable 模式时,项目代码中感觉有些地方实现的没有这个必要,和同事讨论之后,无果,索性就又去研究了下 CLR GC 中关于这块的逻辑以及起因,一方面是为了巩固自己的知识,另一方面也和大家交流下自己的想法,看下是否理解正确,之前听一个 阅读全文
posted @ 2022-10-21 23:35 BUTTERAPPLE 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 引子 之前在网络上看到,C++ 中若 Vector 在初始化或者使用前,指定 Capacity 大小的话,会减少由于新增元素导致超出 Capacity 时的元素拷贝。(以下 源码均为 MSVC C++ 编译器下) void test_with_no_reserve(size_t loop_count 阅读全文
posted @ 2022-10-16 18:45 BUTTERAPPLE 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 前言 最近在搞 计算机图形学相关的东西,有个 demo 用到了 opencv,找了 google 一圈,发现国内都没有比较好的配置和解决的办法,要不就是几年前的教程,最近正好踩坑完,其中经历了自己编译 source file,然后又用 Cmake-gui 来编译,发现都搞不定,最后直接通过下载源码, 阅读全文
posted @ 2022-08-23 23:22 BUTTERAPPLE 阅读(1088) 评论(0) 推荐(1) 编辑
摘要: C# 同步上下文及死锁 1,同步上下文的概念及其历史 在 .Net 之前,多线程的应用程序就已经存在了,这些程序经常需要把比如当前线程的 工作状态或者上下文传递到另一个线程中,在 windows中,程序都是以一个总的消息循环中心来分发所有信息的。所以最开始的时候,大家都会通过定义自己的windows 阅读全文
posted @ 2021-07-23 21:53 BUTTERAPPLE 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 深入理解 SynchronizationContext SynchronizationContext(后续以SC简称) 是什么? 1.1 概念 ​ 在 .NET 框架的多线程程序中,往往很多时间需要将一个线程工作单元或上下文,传递给另一个线程。我们都知道的是 Windows 上的程序是以 消息循环为 阅读全文
posted @ 2021-07-12 22:44 BUTTERAPPLE 阅读(1222) 评论(0) 推荐(0) 编辑
摘要: 贼好的一篇文章,收藏收藏。 ConfigureAwait FAQ Avatar Stephen December 11th, 2019 .NET added async/await to the languages and libraries over seven years ago. In tha 阅读全文
posted @ 2021-07-07 21:10 BUTTERAPPLE 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1. 首先去 https://www.rust lang.org/tools/install Rust 官网上下载相应的安装包。 2. 直接运行 rustup init.exe,这一步 会把 rustc, cargo 等组件给安装好。测试一下, , 3. 当使用 时 遇到 note: LINK : 阅读全文
posted @ 2019-08-12 21:56 BUTTERAPPLE 阅读(3593) 评论(0) 推荐(1) 编辑
摘要: Redis 设计与实现,看 SDS(Simple Dynamic String) 感悟 今天在看 Redis 设计与实现这本书的时候,发现了里面系统定义的数据结构 SDS,中文名为 简单动态字符串。对其设计的思想挺有收获的。 SDS 的定义,位于 sds.h/sdshdr 中:结构如下: SDS 与 阅读全文
posted @ 2019-08-08 21:45 BUTTERAPPLE 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 阿里云 .NET SDK Roa 和 Rpc 风格的签名 Demo,适用于自己不想用其提供的SDK,想用自己组装 Roa 和 Rpc 的签名方式。 Roa 和 Rpc 的签名方式主要有以下几个不同点: 1. 两者 Header 中的分割方式, Roa 的使用的是 “\n” ,Rpc 使用的是 "&" 阅读全文
posted @ 2019-07-18 21:11 BUTTERAPPLE 阅读(1837) 评论(0) 推荐(0) 编辑
摘要: Managed Heap: GC auto manage. One process, One heap. Call Stack: Runtime auto manage, every time when you call a method, the Record frame+1. Record Fr 阅读全文
posted @ 2019-06-27 09:51 BUTTERAPPLE 阅读(498) 评论(0) 推荐(0) 编辑