原创 使用 OpenTelemetry 構建 .NET 應用可觀測性(4):ASP.NET Core 應用中集成 OTel
目錄前言使用 elastic 構建可觀測性平臺在 ASP.NET Core 應用中集成 OTel SDK安裝依賴基礎配置Instrumentation 配置創建自定義 Span 和 Metric完整的代碼演示kibana 中查看數據Trac
原创 使用 OpenTelemetry 構建 .NET 應用可觀測性(3):.NET SDK 概覽
目錄前言概覽opentelemetry-dotnetopentelemetry-dotnet-contribopentelemetry-dotnet-instrumentationSDK 的基本使用安裝依賴ResourcesResource
原创 使用 OpenTelemetry 構建 .NET 應用可觀測性(2):OpenTelemetry 項目簡介
目錄前世今生OpenTracingOpenCensusOpenTelemetryOpenTelemetry 項目介紹OpenTelemetry SpecificationSignalsContext & PropagationOpenTel
原创 揭祕 .NET 中的 TimerQueue(下)
前言 上文給大家介紹了 TimerQueue 的任務調度算法。 https://www.cnblogs.com/eventhorizon/p/17557821.html 這邊做一個簡單的複習。 TimerQueue 中的基本任務單元是 Ti
原创 如何在long-running task中調用async方法
什麼是 long-running thread long-running task 是指那些長時間運行的任務,比如在一個 while True 中執行耗時較長的同步處理。 下面的例子中,我們不斷從隊列中嘗試取出數據,並對這些數據進行處理,這
原创 揭祕 Task.Wait
目錄簡介背後的實現Task.Wait 的兩個階段SpinWait 階段BlockingWait 階段Task.Wait 可能會導致的問題可能會導致線程池飢餓可能會導致死鎖.NET 6 對 Task.Wait 的優化總結 簡介 Task.Wa
原创 C#中使用CAS實現無鎖算法
CAS 的基本概念 CAS(Compare-and-Swap)是一種多線程併發編程中常用的原子操作,用於實現多線程間的同步和互斥訪問。 它操作通常包含三個參數:一個內存地址(通常是一個共享變量的地址)、期望的舊值和新值。 CompareAn
原创 LRU緩存替換策略及C#實現
目錄LRU緩存替換策略核心思想不適用場景算法基本實現算法優化進一步優化Benchmark LRU緩存替換策略 緩存是一種非常常見的設計,通過將數據緩存到訪問速度更快的存儲設備中,來提高數據的訪問速度,如內存、CPU緩存、硬盤緩存等。 但與緩
原创 .NET Task 揭祕(3)async 與 AsyncMethodBuilder
目錄前言AsyncMethodBuilder 介紹AsyncMethodBuilder 是狀態機的重要組成部分AsyncMethodBuilder 的結構AsyncMethodBuilder 功能分析對狀態機的生命週期進行管理對 async
原创 .NET AsyncLocal 避坑指南
目錄AsyncLocal 用法簡介AsyncLocal 實現原理AsyncLocal 的坑AsyncLocal 的避坑指南HttpContextAccessor 的實現原理 AsyncLocal 用法簡介 通過 AsyncLocal 我們可
原创 圖解B樹及C#實現(3)數據的刪除
目錄前言從葉子節點刪除數據從非葉子節點刪除數據提前擴充只有 t-1 的 Item 的節點:維持 B樹 平衡的核心算法從左兄弟節點借用 Item從右兄弟節點借用 Item與左兄弟節點或者右兄弟節點合併最值的刪除代碼實現Benchmarks:與
原创 圖解B樹及C#實現(2)數據的讀取及遍歷
目錄前言查詢數據算法說明代碼實現查詢最值算法說明代碼實現B樹的遍歷算法說明代碼實現Benchmarks總結參考資料 前言 本文爲系列文章 B樹的定義及數據的插入 數據的讀取及遍歷(本文) 數據的刪除 前一篇文章爲大家介紹了 B樹 的基本
原创 圖解B樹及C#實現(1)
目錄前言索引原理局部性(Locality)數據的局部性內存存儲和磁盤存儲磁盤存儲適合的索引結構B樹簡介定義B樹中數據的有序性用C#定義數據結構插入數據的過程分裂:新節點誕生的唯一方式根節點的分裂非根節點的分裂分裂導致樹的高度增加提前分裂插入
原创 從位圖到布隆過濾器,C#實現
前言 本文將以 C# 語言來實現一個簡單的布隆過濾器,爲簡化說明,設計得很簡單,僅供學習使用。 感謝@時總百忙之中的指導。 布隆過濾器簡介 布隆過濾器(Bloom filter)是一種特殊的 Hash Table,能夠以較小的存儲空間較快地
原创 走進Task(2):Task 的回調執行與 await
目錄前言Task.ContinueWithContinueWith 的產物:ContinuationTask額外的參數回調的容器:TaskContinuationTask.ContinueWith 回調的生命週期階段一 將回調封裝進 Con