hez2010 -
Satori GC:同時做到高吞吐、低延時和低內存佔用
前言
GC 的設計裏一直有一個很難繞開的矛盾:高吞吐、低延時、低內存佔用,通常很難同時做到。
傳統做法裏,想要更短的停頓,往往要把更多工作搬到併發階段,甚至讓平時的對象訪問承擔更高成本;想要更高的吞吐量,又往往意味着平時路徑成本必須足夠低,於是更多工作會堆到回收階段;想要更低的內存佔用,則又需要更積極地回收、整理和歸還內存。
.NET 的 Satori GC 最有意思的地方不在於它把某個現有方向做
.net
,
後端
hez2010 -
TypedSql:在 C# 類型系統上實現一個 SQL 查詢引擎
前言
在 .NET 裏寫查詢的時候,很多場景下數據其實早就都在內存裏了:不是數據庫連接,也不是某個遠程服務的結果,而就是一個數組或者 ListT。我只是想過濾一下、投影一下。這時候,通常有幾種選擇:
寫一個 foreach 循環 —— 性能好、可控,但代碼稍微有點囉嗦;
用 LINQ —— 寫起來舒服,看起來也優雅,就是有迭代器、委託帶來的那點開銷;
要麼乾脆極端一點:把數據塞進數據庫,再
.net
,
後端