摘要: 因为前几天做.Net7的矢量化性能优化,发现了一个bug。在类System.Numerics.Vector里面的成员变量IsHardwareAccelerated。但是实际上不确定这个bug是visual studio 2022的还是System.Numerics.Vector库的,个人认为应该是前 阅读全文
posted @ 2023-06-18 09:12 江湖评谈 阅读(924) 评论(4) 推荐(7) 编辑
摘要: # 前言 这个var和dynamic都是不确定的初始化类型,但是这两个本质上的不同。不同在哪儿呢?var编译阶段确定类型,dynamic运行时阶段确定类型。这种说法对不对呢?本篇看下,文章原文地址:[在这里](https://mp.weixin.qq.com/s?__biz=Mzg5NDYwNjU4 阅读全文
posted @ 2023-06-16 08:39 江湖评谈 阅读(1278) 评论(4) 推荐(10) 编辑
摘要: # 前言 IR技术应用在各个编程语言当中,它属于JIT的核心部分,确实有点点麻烦。但部分基本明了。本篇通过.Net8里面的边界检查的小例子了解下。前情提要,看这一篇之前建议看看前一篇:[点击此处](https://mp.weixin.qq.com/s?__biz=Mzg5NDYwNjU4MA==&m 阅读全文
posted @ 2023-05-24 08:11 江湖评谈 阅读(2075) 评论(7) 推荐(17) 编辑
摘要: 前言: 本篇以.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 阅读全文
posted @ 2023-03-02 11:12 江湖评谈 阅读(833) 评论(2) 推荐(2) 编辑
摘要: 楔子 .Net 7的一个重要功能是把托管的源码编译成Native Code,也就是二进制文件。此举看似增加了程序反编译难度,实际上是减少了程序的破解难度。本篇在不触及整个程序架构的前提下,以简单的例子来修改Native AOT exe文件的输出字符串。 例子 Console.WriteLine("H 阅读全文
posted @ 2022-12-31 08:22 江湖评谈 阅读(1139) 评论(4) 推荐(4) 编辑
摘要: 楔子 今天你躺平了吗?生活是如此的无趣,欢迎大家一起来躺平 前言: 很多书籍或者很多文章,对于CLR或者GC这块只限于长篇大论的理论性概念,对于里面的如何运作模式,却几乎一无所知。高达近百万行的CPP文件,毕竟读懂的没有几个。以下取自CLR.Net 6 PreView版本 分配量超过阈值 GC触发里 阅读全文
posted @ 2022-07-26 16:56 江湖评谈 阅读(763) 评论(6) 推荐(5) 编辑
摘要: 1.在Ubuntu中安装Docker 更新ubuntu的apt源索引 sudo apt-get update 安装包允许apt通过HTTPS使用仓库 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ softw 阅读全文
posted @ 2020-10-31 21:17 江湖评谈 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 从前,有一群羊,在草原上很安定的生活着。由于水草丰盛,羊群很快繁殖了大量的小羊。小羊长大了继续繁殖,羊群的羊越来越多。 后面来了几只狼,对羊说:附近好多狮子老虎,我们保护你们,你们尽情吃草。羊说,好的,救世主来了。狼不吃草,隔三差五的偷 吃一只羊。羊群慢慢的减少了,狼一看不对劲。这样减少下去,后面我 阅读全文
posted @ 2020-06-28 11:55 江湖评谈 阅读(1269) 评论(2) 推荐(2) 编辑
摘要: // 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) 阅读全文
posted @ 2019-11-15 16:01 江湖评谈 阅读(263) 评论(0) 推荐(0) 编辑
摘要: public void ABC() { var canvas = new Canvas(); Content = canvas; var points = new List<Point>() { new Point(200, 200), new Point(400, 200), new Point( 阅读全文
posted @ 2019-10-11 14:40 江湖评谈 阅读(507) 评论(0) 推荐(1) 编辑