共 5 页: 上一页 1 2 3 4 5 下一页

2017年11月10日

Golang源码探索(二) 协程的实现原理

摘要:Golang最大的特色可以说是协程(goroutine)了, 协程让本来很复杂的异步编程变得简单, 让程序员不再需要面对回调地狱, 虽然现在引入了协程的语言越来越多, 但go中的协程仍然是实现的是最彻底的. 这篇文章将通过分析golang的源代码来讲解协程的实现原理. 这个系列分析的golang源代 阅读全文

posted @ 2017-11-10 17:23 q303248153 阅读 (12020) 评论 (7) 编辑

2017年11月3日

Golang源码探索(一) 编译和调试源码

摘要:GO可以说是近几年最热门的新兴语言之一了, 一般人看到 分布式 和 大数据 就会想到GO, 这个系列的文章会通过研究golang的源代码来分析内部的实现原理, 和CoreCLR不同的是, golang的源代码已经被很多人研究过了, 我将会着重研究他们未提到过的部分. 另一点和CoreCLR不同的是, 阅读全文

posted @ 2017-11-03 11:55 q303248153 阅读 (9541) 评论 (0) 编辑

2017年10月28日

AsyncLocal的运作机制和陷阱

摘要:这是今天帮 "柠檬" 分析一个 "AsyncLocal相关的问题" 时发现的. 试想这个代码输出的值是多少? 答案是123. 为什么修改了 的值却无效呢? 这要从AsyncLocal的运作机制说起. 首先这是 "AsyncLocal的源代码" : 获取和设置值用的是 和`ExecutionConte 阅读全文

posted @ 2017-10-28 15:55 q303248153 阅读 (1327) 评论 (6) 编辑

CoreCLR源码探索(八) JIT的工作原理(详解篇)

摘要:在 "上一篇" 我们对CoreCLR中的JIT有了一个基础的了解, 这一篇我们将更详细分析JIT的实现. JIT的实现代码主要在 "https://github.com/dotnet/coreclr/tree/master/src/jit" 下, 要对一个的函数的JIT过程进行详细分析, 最好的办法 阅读全文

posted @ 2017-10-28 11:48 q303248153 阅读 (1113) 评论 (3) 编辑

2017年10月18日

CoreCLR源码探索(七) JIT的工作原理(入门篇)

摘要:很多C 的初学者都会有这么一个疑问, .Net程序代码是如何被机器加载执行的? 最简单的解答是, C 会通过编译器(CodeDom, Roslyn)编译成IL代码, 然后CLR(.Net Framework, .Net Core, Mono)会把这些IL代码编译成目标机器的机器代码并执行. 相信大多 阅读全文

posted @ 2017-10-18 17:27 q303248153 阅读 (4526) 评论 (22) 编辑

2017年9月19日

ZKWeb网页框架2.0正式发布

摘要:2.0.0更新的内容有 更新框架要求 框架要求从 netstandard 1.6 升到 netstandard 2.0 框架要求从 netcoreapp1.1 升到 netcoreapp2.0 更新引用类库 Microsoft.AspNetCore.Hosting.Abstractions 2.0. 阅读全文

posted @ 2017-09-19 12:13 q303248153 阅读 (1269) 评论 (1) 编辑

2017年8月17日

.Net Core在X86上实现Interlocked.Increment(ref long)的方式

摘要:因为在X86上long会被分割为两个int进行操作, 那么Interlocked.Increment的实现成为了一个问题。 在一番搜索后未发现有现成的文章解释这个问题,于是我就动手分析了。 这篇是笔记,不会做过多的解释。 首先重现环境是 .Net Core 2.0 Windows (x86) Bin 阅读全文

posted @ 2017-08-17 14:36 q303248153 阅读 (620) 评论 (1) 编辑

2017年8月7日

如何在Linux上使用VIM进行.Net Core开发

摘要:对于在Linux上开发.Net Core的程序员来说, 似乎都缺少一个好的IDE. Windows上有Visual Studio, Mac上有Visual Studio for Mac, 难道Linux只有Visual Studio Code了吗? Linux上有两个最好的编辑器: VIM和Emac 阅读全文

posted @ 2017-08-07 14:39 q303248153 阅读 (2226) 评论 (12) 编辑

2017年6月16日

ZKWeb网页框架1.9正式发布

摘要:1.9.0更新的内容有 更新项目工具 更好的支持Linux 添加工具函数 Exception.ToDetailedString (获取例外的详细信息) Exception.ToSummaryString (获取例外的简略信息) Expression.ReplaceNode (替换表达式中的节点, 一 阅读全文

posted @ 2017-06-16 14:39 q303248153 阅读 (308) 评论 (1) 编辑

2017年5月24日

CoreCLR源码探索(六) NullReferenceException是如何发生的

摘要:NullReferenceException可能是.Net程序员遇到最多的例外了, 这个例外发生的如此频繁, 以至于人们付出了巨大的努力来使用各种特性和约束试图防止它发生, 但时至今日它仍然让很多程序员头痛, 今天我将讲解这个令人头痛的例外是如何发生的. 可以导致NullReferenceExcep 阅读全文

posted @ 2017-05-24 14:06 q303248153 阅读 (1634) 评论 (12) 编辑

共 5 页: 上一页 1 2 3 4 5 下一页

导航