『随笔』.Net 底层 数组[] 的 基本设计探秘 512 子数组

 1         static void Main(string[] args)
 2         {
 3             Console.ReadKey();    
 4 
 5             //初始化数组 不会立即开辟内存字节, 只有实际给数组赋值时 才会开辟内存
 6             //
 7             //猜测数组内部的实现原理如下:
 8             //
 9             // > 数组内部 还有一个 数组集合
10             // > 赋值时, 会通过索引找到 对应的那个 数组集合的子数组, 然后初始化这个 子数组
11             // > 取值时, 如果索引对应的 子数组还没有创建, 则直接返回 NULL
12             //
13             // > 经过下面代码的 测算, 子数组的长度为 512 左右
14             // > 比如: 你初始化一个 2048 个元素的数组, 数组内部其实开辟了 4个子数组
15             //
16             // > 下面的 array 和 array2, 
17             //    前者 i=i+1    肯定会 初始化每一个 子数组
18             //    后者 i=i+512  会跳跃定位 子数组
19             // > 最后 array 和 array2 占用内存一样多 —— 即: 跳跃 512 依然完成了全部子数组的初始化
20             
21 
22 
23             object[] array = new object[20 * 1024 * 1024];        //NULL 每个占 8 字节    总内存 173M 
24             for (int i = 0; i < array.Length; i = i + 1)
25                 array[i] = null;
26 
27             object[] array2 = new object[20 * 1024 * 1024];        
28             for (int i = 0; i < array2.Length; i = i + 512)       //i=i+1   i=i+512   最后开辟的内存是一样多的 (索引跳跃512 就会定位到 下一个子数组, 然后初始化这个 子数组)
29                 array2[i] = null;
30 
31 
32             //int[] array3 = new int[20 * 1024 * 1024];            //Int32 每个占 4 字节
33             //for (int i = 0; i < array3.Length; i = i + 1)
34             //    array3[i] = 1;
35 
36 
37 
38             Console.ReadKey();
39 
40         }

 

测试代码 比较简单。

 

32位程序,启动时 8M,

开辟 object[] 数组,全部赋值 NULL,内存飙到 173M  

object 在 数组中的指针 占 8 字节

 

通过跳跃赋值, 得出结论:

数组内部 包含 若干个 子数组, 子数组 固定长度 512(左右)

 

转载于:https://www.cnblogs.com/shuxiaolong/p/NetArray_20181203_2002.html

# 高校智慧校园解决方案摘要 智慧校园解决方案是针对高校信息化建设的核心工程,旨在通过物联网技术实现数字化校园的智能化升级。该方案通过融合计算机技术、网络通信技术、数据库技术和IC卡识别技术,初步实现了校园一卡通系统,进而通过人脸识别技术实现了更精准的校园安全管理、生活管理、教务管理和资源管理。 方案包括多个管理系统:智慧校园管理平台、一卡通卡务管理系统、一卡通人脸库管理平台、智能人脸识别消费管理系统、疫情防控管理系统、人脸识别无感识别管理系统、会议签到管理系统、人脸识别通道管理系统和图书馆对接管理系统。这些系统共同构成了智慧校园的信息化基础,通过统一数据库和操作平台,实现了数据共享和信息一致性。 智能人脸识别消费管理系统通过人脸识别终端,在无需接触的情况下快速完成消费支付过程,提升了校园服务效率。疫情防控管理系统利用热成像测温技术、视频智能分析等手段,实现了对校园人员体温监测和疫情信息实时上报,提高了校园公共卫生事件的预防和控制能力。 会议签到管理系统和人脸识别通道管理系统均基于人脸识别技术,实现了会议的快速签到和图书馆等场所的高效通行管理。与图书馆对接管理系统实现了一卡通系统与图书馆管理系统的无缝集成,提升了图书借阅的便捷性。 总体而言,该智慧校园解决方案通过集成的信息化管理系统,提升了校园管理的智能化水平,优化了校园生活体验,增强了校园安全,并提高了教学和科研的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值