C#数组大小分析(附测试过程中想起的debug和release区别)
2017-10-17 11:02
417 查看
C#数组的理论最大长度到底是多少呢?曾经一度问过度娘,谷歌,貌似都没有得出一个比较准确的答案,无外乎是什么Int32的最大值啊什么的,今天终于决定写个软件来自己测试一下,在几台不同的电脑里面实际测试看看到底是多大?
说干就干,利用二分查找算法分别找出bool数组,int数组,string数组,long数组,float数组等几个常用类型的最大长度,在三台电脑上的结果分别如下:
电脑1-PC的基本配置:
电脑2-X3650服务器:
电脑3-X250笔记本:
从上面的表格中,可以很清楚的看到,这几个系统环境下各种类型数组的最大长度,有点奇怪的是,string类型数组,三个系统环境有点差别,望高人指点。
PS:编写该测试软件的过程中,发现并体会到了一番debug和release程序的区别了,度娘和谷歌上大多数的说法都是,release更轻量级,做了很多优化,程序运行效率更高,但是真正体现在程序中的是,定义一个数组,比如int[] list = new int[1000],debug中是立即分配了内存空间,而release中,如果不使用是不会分配内存空间的,这就导致我这个测试程序最开始的情况是,debug模式时运行得好好的,而release模式就不正常了,因为我是通过捕获异常来判断系统中该类型数组的最大长度的
说干就干,利用二分查找算法分别找出bool数组,int数组,string数组,long数组,float数组等几个常用类型的最大长度,在三台电脑上的结果分别如下:
电脑\数组类型 | bool | int | string | long | float |
电脑1-PC | 2147483591 | 536870897 | 268435447 | 268435448 | 536870897 |
电脑2-X3650服务器 | 2147483591 | 536870897 | 268435447 | 268435448 | 536870897 |
电脑3-X250笔记本 | 2147483591 | 536870897 | 268435448 | 268435448 | 536870897 |
电脑2-X3650服务器:
电脑3-X250笔记本:
从上面的表格中,可以很清楚的看到,这几个系统环境下各种类型数组的最大长度,有点奇怪的是,string类型数组,三个系统环境有点差别,望高人指点。
PS:编写该测试软件的过程中,发现并体会到了一番debug和release程序的区别了,度娘和谷歌上大多数的说法都是,release更轻量级,做了很多优化,程序运行效率更高,但是真正体现在程序中的是,定义一个数组,比如int[] list = new int[1000],debug中是立即分配了内存空间,而release中,如果不使用是不会分配内存空间的,这就导致我这个测试程序最开始的情况是,debug模式时运行得好好的,而release模式就不正常了,因为我是通过捕获异常来判断系统中该类型数组的最大长度的
相关文章推荐
- 对 VS2008 Debug版本与Release版本本质区别的分析
- 浮点型精度,数组越界,debug和release下运行的区别,release下的调试
- 浮点型精度,数组越界,debug和release下运行的区别,release下的调试
- vs2010 MFC程序编译过程中debug版本跟release版本的区别
- vc下debug 版本和release版本的区别(转)
- Debug 和 Release 编译方式的本质区别
- VS.Net中程序集的Debug版本和Release版本的区别
- VC下release版本和Debug版本的区别及各自的特点
- debug和release版本的区别
- Debug 和 Release 编译方式的本质区别
- Android Studio debug使用release的签名,省去微信登录之类的要打成正式包才能测试的麻烦!
- Debug与Release版本的区别
- Android Studio debug使用release的签名,省去微信登录之类的要打成正式包才能测试的麻烦!
- android studio的debug和release模式下使用不同的Http前缀进行测试与正式环境的自动切换
- debug和release版区别
- 【转】VC2005 Debug 和 Release 编译方式的区别
- debug和release的区别
- C#中的项目文件夹debug 和release的区别
- debug 和 release 版本间堆栈平衡的区别
- VS中Debug模式和Release模式的区别