随笔分类 -  .NET

摘要:最近有一个朋友问我这样一个问题: 我的业务依赖一些数据,因为数据库访问慢,我把它放在Redis里面,不过还是太慢了,有什么其它的方案吗? 其实这个问题比较简单的是吧?Redis其实属于网络存储,我对照下面的这个表格,可以很容易的得出结论,既然网络存储的速度慢,那我们就可以使用内存RAM存储,把放Re 阅读全文
posted @ 2022-11-15 09:12 InCerry 阅读(1892) 评论(10) 推荐(16)
摘要:我记得大约在半年前,有个朋友问我一个问题,现在有一个选型: 一个性能敏感场景,有一个集合,需要确定某一个元素在不在这个集合中,我是用数组直接Contains还是使用HashSet<T>.Contains? 大家肯定想都不用想,都选使用HashSet<T>,毕竟HashSet<T>的时间复杂度是O(1 阅读全文
posted @ 2022-11-11 09:26 InCerry 阅读(1485) 评论(8) 推荐(14)
摘要:之前有听到说Docker支持Wasmtime了,刚好.NET7也支持WASM,就带大家来了解一下这个东西,顺便试试它怎么样。 因为WASM(WebAssembly) 一开始是一个给浏览器的技术,比起JS解释执行,WASM能用于提升浏览器的用户体验,因为在一些场景中它有着比JS更好的性能。 大家可以将 阅读全文
posted @ 2022-11-10 10:35 InCerry 阅读(2706) 评论(17) 推荐(17)
摘要:计算机单机性能一直受到摩尔定律的约束,随着移动互联网的兴趣,单机性能不足的瓶颈越来越明显,制约着整个行业的发展。不过我们虽然不能无止境的纵向扩容系统,但是我们可以分布式、横向的扩容系统,这听起来非常的美好,不过也带来了今天要说明的问题,分布式的节点越多,通信产生的成本就越大。 网络传输带宽变得越来越 阅读全文
posted @ 2022-11-07 11:12 InCerry 阅读(8086) 评论(46) 推荐(64)
摘要:在之前的文章中,我们介绍了dotnet在字符串拼接时可以使用的一些性能优化技巧。比如: 为StringBuilder设置Buffer初始大小 使用ValueStringBuilder等等 不过这些都多多少少有一些局限性,比如StringBuilder还是会存在new StringBuilder()这 阅读全文
posted @ 2022-11-04 10:49 InCerry 阅读(4525) 评论(10) 推荐(16)
摘要:相信最近看过我的文章的朋友对于Microsoft.Extensions.ObjectPool不陌生;复用、池化是在很多高性能场景的优化技巧,它能减少内存占用率、降低GC频率、提升系统TPS和降低请求时延。 那么池化和复用对象意味着同一时间会有多个线程访问池,去获取和归还对象,那么这肯定就有并发问题。 阅读全文
posted @ 2022-11-03 11:27 InCerry 阅读(605) 评论(1) 推荐(12)
摘要:今天在浏览张队转载文章的留言时,遇到一个读者问了这样的问题,如下图所示: 首先能明确的一点是"程序崩溃退出了是不能用常规的方式dump的",因为整个进程树都已经退出。现场已经无法使用常规的方式读取到。 一般来说常规的方法是没办法读取到的,也有一些特殊的方式,比如有关部门在调查取证时,就可以通过一些工 阅读全文
posted @ 2022-11-02 10:37 InCerry 阅读(6682) 评论(22) 推荐(51)
摘要:当一个应用程序运行的有问题时,生成一个Dump文件来调试它可能会很有用。在Windows、Linux或Azure上有许多方法可以生成转储文件。 Windows平台 dotnet-dump (Windows) dotnet-dump全局工具是一种收集和分析.NET核心应用程序Dump的方法。 安装 d 阅读全文
posted @ 2022-11-01 09:42 InCerry 阅读(3499) 评论(0) 推荐(13)
摘要:微软终于追上了? 图片来自 Glenn Carstens-Peters Unsplash 欢迎来到.NET性能系列的另一章。这个系列的特点是对.NET世界中许多不同的主题进行研究、基准和比较。正如标题所说的那样,重点在于使用最新的.NET7的性能。你将看到哪种方法是实现特定主题的最快方法,以及大量的 阅读全文
posted @ 2022-10-31 09:38 InCerry 阅读(6617) 评论(19) 推荐(15)
摘要:简介 在之前的一篇文章.NET性能系列文章一:.NET7的性能改进中我们聊到Linq中的Min()和Max()方法.NET7比.NET6有高达45倍的性能提升,当时Benchmark代码和结果如下所示: [Params(1000)] public int Length { get; set; } p 阅读全文
posted @ 2022-10-28 09:23 InCerry 阅读(8938) 评论(18) 推荐(33)
摘要:这些方法在.NET7中变得更快 照片来自 CHUTTERSNAP 的 Unsplash 欢迎阅读.NET性能系列的第一章。这一系列的特点是对.NET世界中许多不同的主题进行研究、比较性能。正如标题所说的那样,本章节在于.NET7中的性能改进。你将看到哪种方法是实现特定功能最快的方法,以及大量的技巧和 阅读全文
posted @ 2022-10-24 09:53 InCerry 阅读(3135) 评论(21) 推荐(16)
摘要:## 简介 上一篇文章使用C#编写一个.NET分析器文章发布以后,很多小伙伴都对最新的NativeAOT函数导出比较感兴趣,今天故写一篇短文来介绍一下如何使用它。 在以前,如果有其他语言需要调用C#编写的库,那基本上只有通过各种RPC的方式(HTTP、GRPC)或者引入一层C++代理层的方式来调用。 阅读全文
posted @ 2022-09-16 09:48 InCerry 阅读(8953) 评论(32) 推荐(16)
摘要:译者注 这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一,在国内只有很少很少的人了解和研究.NET分析器,它常被用于APM(应用性能诊断)、IDE、诊断工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Reshape 阅读全文
posted @ 2022-09-15 09:48 InCerry 阅读(2277) 评论(10) 推荐(13)
摘要:前言 熟悉我的朋友可能知道,我从18年开始尝试的写一些文字记录一些东西;最开始我是在CSDN上进行创作,后面由于实在忍受不了CSDN上面各种商业化产品转战到博客园。 由于之前一直都忙于工作和其它生活上面的事情,并没有太多的文章产出,经过这么些年的沉淀,今年终于有一点点空余的时间来写一些我关注的和研究 阅读全文
posted @ 2022-08-22 09:54 InCerry 阅读(930) 评论(4) 推荐(3)
摘要:简介 System.Collections.Generic.List<T>是.NET中的泛型集合类,可以存储任何类型的数据,因为它的便利和丰富的API,在我们平时会广泛的使用到它,可以说是使用最多的集合类。 在代码编写中,我们经常需要遍历一个List<T>集合,获取里面的得元素进行一些业务的处理。通 阅读全文
posted @ 2022-08-16 09:37 InCerry 阅读(9168) 评论(48) 推荐(58)
摘要:译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。 首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。 原作者:Ayende Rahien 阅读全文
posted @ 2022-08-11 09:38 InCerry 阅读(1513) 评论(5) 推荐(10)
摘要:译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。 首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。 原作者:Ayende Rahien 阅读全文
posted @ 2022-08-10 10:19 InCerry 阅读(851) 评论(3) 推荐(8)
摘要:译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。 首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。 由于接下来的两篇较短,本文一起把它 阅读全文
posted @ 2022-08-09 09:39 InCerry 阅读(1211) 评论(10) 推荐(9)
摘要:## 译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。 首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。 原作者:Ayende Ra 阅读全文
posted @ 2022-08-08 09:41 InCerry 阅读(1157) 评论(7) 推荐(3)
摘要:## 译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。 首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。 原作者:Ayende Ra 阅读全文
posted @ 2022-08-04 09:41 InCerry 阅读(1880) 评论(12) 推荐(18)