MEF简介及简单的Demo
摘要:C#可扩展编程之MEF学习笔记(一):MEF简介及简单的Demo 在文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架)。单从名字我们不难发现:MEF是专门致力于解决扩展性问题的框架,MSDN中对MEF有这样一段说明
阅读全文
C#并发编程之异步编程2
摘要:C#并发编程之异步编程(二) 写在前面 前面一篇文章介绍了异步编程的基本内容,同时也简要说明了async和await的一些用法。本篇文章将对async和await这两个关键字进行深入探讨,研究其中的运行机制,实现编码效率与运行效率的提升。 异步方法描述:使用async修饰符来标识一个方法或Lambd
阅读全文
并发编程-TPL
摘要:并发编程-TPL 本节导航 基本概念 并发编程 TPL 线程基础 windows为什么要支持线程 线程开销 CPU的发展 使用线程的理由 如何写一个简单Parallel.For循环 数据并行 Parallel.For剖析 并发编程 TPL windows为什么要支持线程 线程开销 CPU的发展 使用
阅读全文
GraphQL和C#
摘要:GraphQL 02 GraphQL和C#结合的实战项目 本文章是介绍和记录如何创建GraphQL项目,以及如何使用GraphQL进行数据的相关操作。项目参照GraphQL .Net 的官方文档进行实践 一、项目结构: 为了更好的和原有的项目结合在一起,尽可能减少对原项目的修改。我对项目结构做了如下
阅读全文
C# Dictionary源码剖析---哈希处理冲突的方法有:开放定址法、再哈希法、链地址法、建立一个公共溢出区等
摘要:C# Dictionary源码剖析 参考:https://blog.csdn.net/exiaojiu/article/details/51252515 http://www.cnblogs.com/wangjun1234/p/3719635.html 源代码版本为 .NET Framework 4
阅读全文
反射性能优化3
摘要:反射性能优化3 阅读目录 开始 用Delegate优化反射的缺点 用Delegate优化反射的优点 用CodeDOM优化反射的优点 如何用好CodeDOM? 用CodeDOM优化反射的缺点 能不能不使用委托? 根据反射密集程度选择优化方法 CodeDOM优化的误区 反射优化的总结 阅读目录 开始 用
阅读全文
反射性能优化2
摘要:反射性能优化2 在上篇博客中,我介绍了优化反射的第一个步骤:用委托调用代替直接反射调用。 然而,那只是反射优化过程的开始,因为新的问题出现了:如何保存大量的委托? 如果我们将委托保存在字典集合中,会发现这种设计会浪费较多的执行时间,因为这种设计会引发三个新问题: 1. 代码的执行路径变长了。 2.
阅读全文
反射性能优化1
摘要:反射性能优化1 反射是一种很重要的技术,然而它与直接调用相比性能要慢很多,因此如何优化反射性能也就成为一个不得不面对的问题。 目前最常见的优化反射性能的方法就是采用委托:用委托的方式调用需要反射调用的方法(或者属性、字段)。 目前最常见也就是二种方法:Emit, ExpressionTree 。其中
阅读全文
C# 8.0、.NET Framework 4.8与NET Standard 2.1的一个说明
摘要:C# 8.0、.NET Framework 4.8与NET Standard 2.1的一个说明 https://blog.csdn.net/sD7O95O/article/details/84609820 早在本月12日,微软官方的.NET Blog发布了一篇名为《Building C# 8.0》的
阅读全文
多线程
摘要:进程-线程-多线程 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。 而一个进程又是由多个线程所组成的。 什么是线程? 线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的
阅读全文
File、Directory、Path
摘要:File、Directory、Path https://blog.csdn.net/xiaouncle/article/details/52050577 File、Directory、Path是实际开发中应用频率比较高的类,程序对电脑的简单操作基本可以概括为对文件、目录、路径的操作,下面讲解主要用法
阅读全文
C#排序算法
摘要:经典排序算法 — C# 版(上) 提起排序,与我们的息息相关,平时开发的代码少不了排序。 经典的排序算法又非常多,我们怎么评价一个排序算法的好坏呢? 其实可以这样想,要细致的比较排序算法好坏,那我们就从多方面尽可能详细的对比 一、效率方面 1、排序算法的执行效率:最好、最坏、平均 2、 我们之前舍弃
阅读全文
C#写的window服务内存溢出
摘要:浅谈c#垃圾回收机制(GC) 写了一个window服务,循环更新sqlite记录,内存一点点稳步增长。三天后,内存溢出。于是,我从自己的代码入手,查找到底哪儿占用内存释放不掉,最终明确是调用servicestack.ormlite更新sqlite数据库造成的。至于是不是框架问题,可能性不大,因为本地
阅读全文
ExpressionTree,Emit,反射
摘要:ExpressionTree,Emit,反射 https://www.cnblogs.com/7tiny/p/9861166.html 【前言】 前几日心血来潮想研究着做一个Spring框架,自然地就涉及到了Ioc容器对象创建的问题,研究怎么高性能地创建一个对象。第一联想到了Emit,兴致冲冲写了个
阅读全文
表达式和表达式树
摘要:Lambda表达式和表达式树 https://www.cnblogs.com/ashleyboy/p/4831064.html lambda表达式是C 3.0中引入的比匿名方法更加简洁的一种语法,可用于创建委托或表达式树类型的匿名函数。Lambda表达式本身可划分为两种类型:语句Lambda和表达式
阅读全文
NET
摘要:Emit Vs CodeDom https://www.cnblogs.com/mxy1028/archive/2011/01/30/1947769.html namespace System.CodeDom; System.Reflection; System.Reflection.Emit; M
阅读全文
CPU高速缓存
摘要:高并发、低延迟之玩转CPU高速缓存(附C 示例) https://www.cnblogs.com/justmine/p/9696160.html 写在前面 好久没有写博客了,一直在不断地探索响应式DDD,又get到了很多新知识,解惑了很多老问题,最近读了Martin Fowler大师一篇非常精彩的博
阅读全文
本地锁、redis分布式锁、zk分布式锁
摘要:本地锁、redis分布式锁、zk分布式锁 https://www.cnblogs.com/yjq code/p/dotnetlock.html 为什么要用锁? 大型站点在高并发的情况下,为了保持数据最终一致性就需要用到技术方案来支持。比如:分布式锁、分布式事务。有时候我们在为了保证某一个方法每次只能
阅读全文
线程池(ThreadPool)
摘要:线程池(ThreadPool) https://www.cnblogs.com/jonins/p/9369927.html 线程池概述 由系统维护的容纳线程的容器,由CLR控制的所有AppDomain共享。线程池可用于执行任务、发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。 线程池与
阅读全文
Net4.6 Task 异步函数 比 同步函数 慢5倍 踩坑经历
摘要:Net4.6 Task 异步函数 比 同步函数 慢5倍 踩坑经历 https://www.cnblogs.com/shuxiaolong/p/DotNet_Task_BUG.html 异步Task简单介绍 本标题有点 哗众取宠,各位都别介意(不排除个人技术能力问题) —— 接下来:我将会用一个小De
阅读全文