摘要: 一般情况下,一个 .NET 程序集加载到程序中以后,它的类型信息以及原生代码等数据会一直保留在内存中,.NET 运行时无法回收它们,如果我们要实现插件热加载 (例如 Razor 或 Aspx 模版的热更新) 则会造成内存泄漏。在以往,我们可以使用 .NET Framework 的 AppDomain 阅读全文
posted @ 2019-10-07 14:10 q303248153 阅读(12994) 评论(17) 推荐(49) 编辑
摘要: 因为最近在群里被问到如何理解 .NET Core 3.0 可卸载程序集,所以就写了这篇简单的分析。 因为时间实在很少,这篇文章只简单的罗列了相关的代码,请配合官方说明文档理解。 另外,书籍《.NET Core 底层原理》预计 11 月出版,出版社比较拖 :O。 链接 可卸载程序集的官方说明文档如下: 阅读全文
posted @ 2019-09-13 09:25 q303248153 阅读(2329) 评论(6) 推荐(10) 编辑
摘要: 因为没有给域名续费,加上私人时间不足,ZKWeb 的官网和演示站点已经停止了几个月的时间。 最近时间开始变多,所以重新购买了别的域名和服务器把官网和演示站点重新部署上去。 在此前站点是托管在共享主机上的 Windows + IIS 上的,而现在已经换为了 Linux + Nginx,费用比使用共享主 阅读全文
posted @ 2019-05-28 13:42 q303248153 阅读(769) 评论(0) 推荐(1) 编辑
摘要: 2.2.1 更新的内容有 改进 EFCore 支持 支持自动 json 序列化字段 (通过 WithSerialization 选项) 支持懒加载 更新后 EFCore 可以使用所有默认插件 (ZKWeb.Plugins),但由于缺乏自动多对多支持部分功能会受影响, 因此目前仍然推荐使用 NHibe 阅读全文
posted @ 2019-05-28 13:41 q303248153 阅读(323) 评论(1) 推荐(1) 编辑
摘要: 2.2.0更新的内容有 重构依赖注入容器 使用无锁算法 (可能导致不兼容) 使用 ContainerFactoryData 创建实例 (可能导致不兼容) 删除静态的 ContainerFactoryCache 简化代码 (可能导致不兼容) 更新接口 IMultiConstructorResolver 阅读全文
posted @ 2018-12-24 08:53 q303248153 阅读(413) 评论(1) 推荐(2) 编辑
摘要: 2.1.0更新的内容有 更新引用类库 NHibernate 5.1.0 Npgsql 3.2.7 MySqlConnector 0.37.0 Dapper 1.50.4 Dommel 1.10.1 ZKWeb.System.Drawing 4.0.1 ZKWeb.Fork.FluentNHibern 阅读全文
posted @ 2018-03-26 09:13 q303248153 阅读(769) 评论(2) 推荐(3) 编辑
摘要: 最近这几天在帮 "柠檬" 看她的APM系统要如何收集.Net运行时的各种事件, 这些事件包括线程开始, JIT执行, GC触发等等. .Net在windows上(NetFramework, CoreCLR)通过ETW(Event Tracing for Windows), 在linux上(CoreC 阅读全文
posted @ 2017-12-27 16:21 q303248153 阅读(7324) 评论(12) 推荐(26) 编辑
摘要: Golang从1.5开始引入了三色GC, 经过多次改进, 当前的1.9版本的GC停顿时间已经可以做到极短. 停顿时间的减少意味着"最大响应时间"的缩短, 这也让go更适合编写网络服务程序. 这篇文章将通过分析golang的源代码来讲解go中的三色GC的实现原理. 这个系列分析的golang源代码是G 阅读全文
posted @ 2017-11-22 17:04 q303248153 阅读(24830) 评论(13) 推荐(29) 编辑
摘要: Golang最大的特色可以说是协程(goroutine)了, 协程让本来很复杂的异步编程变得简单, 让程序员不再需要面对回调地狱, 虽然现在引入了协程的语言越来越多, 但go中的协程仍然是实现的是最彻底的. 这篇文章将通过分析golang的源代码来讲解协程的实现原理. 这个系列分析的golang源代 阅读全文
posted @ 2017-11-10 17:23 q303248153 阅读(23398) 评论(8) 推荐(23) 编辑
摘要: GO可以说是近几年最热门的新兴语言之一了, 一般人看到 分布式 和 大数据 就会想到GO, 这个系列的文章会通过研究golang的源代码来分析内部的实现原理, 和CoreCLR不同的是, golang的源代码已经被很多人研究过了, 我将会着重研究他们未提到过的部分. 另一点和CoreCLR不同的是, 阅读全文
posted @ 2017-11-03 11:55 q303248153 阅读(16239) 评论(0) 推荐(6) 编辑