摘要:
因为前几天做.Net7的矢量化性能优化,发现了一个bug。在类System.Numerics.Vector里面的成员变量IsHardwareAccelerated。但是实际上不确定这个bug是visual studio 2022的还是System.Numerics.Vector库的,个人认为应该是前 阅读全文
摘要:
# 前言 这个var和dynamic都是不确定的初始化类型,但是这两个本质上的不同。不同在哪儿呢?var编译阶段确定类型,dynamic运行时阶段确定类型。这种说法对不对呢?本篇看下,文章原文地址:[在这里](https://mp.weixin.qq.com/s?__biz=Mzg5NDYwNjU4 阅读全文
摘要:
# 前言 IR技术应用在各个编程语言当中,它属于JIT的核心部分,确实有点点麻烦。但部分基本明了。本篇通过.Net8里面的边界检查的小例子了解下。前情提要,看这一篇之前建议看看前一篇:[点击此处](https://mp.weixin.qq.com/s?__biz=Mzg5NDYwNjU4MA==&m 阅读全文
摘要:
前言: 本篇以.Net 7.0.2 CLR 和 OpenJDk19参照,解析下它们各自调用函数的异同。 以下为个人理解。 概述 JDK大约5.9G,CLR大约7.6G,两者相差1.7G左右。 root@tang-virtual-machine:/home/tang# cd jdk-jdk-19-36 阅读全文
摘要:
楔子 .Net 7的一个重要功能是把托管的源码编译成Native Code,也就是二进制文件。此举看似增加了程序反编译难度,实际上是减少了程序的破解难度。本篇在不触及整个程序架构的前提下,以简单的例子来修改Native AOT exe文件的输出字符串。 例子 Console.WriteLine("H 阅读全文
摘要:
楔子 今天你躺平了吗?生活是如此的无趣,欢迎大家一起来躺平 前言: 很多书籍或者很多文章,对于CLR或者GC这块只限于长篇大论的理论性概念,对于里面的如何运作模式,却几乎一无所知。高达近百万行的CPP文件,毕竟读懂的没有几个。以下取自CLR.Net 6 PreView版本 分配量超过阈值 GC触发里 阅读全文
摘要:
1.在Ubuntu中安装Docker 更新ubuntu的apt源索引 sudo apt-get update 安装包允许apt通过HTTPS使用仓库 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ softw 阅读全文
摘要:
从前,有一群羊,在草原上很安定的生活着。由于水草丰盛,羊群很快繁殖了大量的小羊。小羊长大了继续繁殖,羊群的羊越来越多。 后面来了几只狼,对羊说:附近好多狮子老虎,我们保护你们,你们尽情吃草。羊说,好的,救世主来了。狼不吃草,隔三差五的偷 吃一只羊。羊群慢慢的减少了,狼一看不对劲。这样减少下去,后面我 阅读全文
摘要:
// ConsoleApplication26.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <Windows.h> typedef ULONG_PTR TADDR; #define VAL16(x) x #define VAL32(x) x #define DPTR(type) type* #define ALIGN4BYTE(val) 阅读全文
摘要:
public void ABC() { var canvas = new Canvas(); Content = canvas; var points = new List<Point>() { new Point(200, 200), new Point(400, 200), new Point( 阅读全文