C#中如何动态开辟大的内存区域?

问题描述

我要开辟一个10G大小的内存区域给系统保存BMP文件使用,不想频繁分配和回收内存。10G内存算好了给100个图片使用,轮询使用,程序结束时一起释放掉。C++中可以按照BYTE分配内存,C#中应该如何写呢?

解决方案

解决方案二:
你牛B,要开10G内存区域!!!!!!
解决方案三:
能不能1、使用RamDisk内存模拟硬盘的软件,操作在此内存盘上,实现提高性能2、三星951PCISSD,理论性能是DDR3内存处理速度的三分之一,速度在1000M~1500M之间3、INETLPCISSD,价格高了些4、索泰PCISSD
解决方案四:
只要你的内存足够大byte[]buffer=newbyte[10L*1024L*1024L*1024L];

解决方案五:
直接开。.NET会在中间给你处理好的!
解决方案六:
引用3楼Poopaye的回复:

只要你的内存足够大byte[]buffer=newbyte[10L*1024L*1024L*1024L];

+1
解决方案七:
但是我不知道这10G内存什么时候被清除呀,我程序运行中要不断循环使用这个内存,并且使用指针方式访问的,如何我自己回收这部分内存呢?
解决方案八:
引用6楼s300的回复:

但是我不知道这10G内存什么时候被清除呀,我程序运行中要不断循环使用这个内存,并且使用指针方式访问的,如何我自己回收这部分内存呢?

你自己要分配内存,却不知道怎么用???
解决方案九:
当指向这段内存的引用全都废弃时,就自动回收了
解决方案十:
byte[]buffer=newbyte[10L*1024L*1024L*1024L];//开辟内存空间,在当前语句块没有运行完之前一直存在buffer=null;//强制回收内存空间。你如果觉得没回收干净,可以再gc回收一下。/*你要是需要内存块不手动回收一直存在,变量声明在program.cs内即可,在这里声明的变量只有你手动处理,否则一直到你关闭程序才回收,asp的话放在glable里面,但是asp长时间没有访问也会回收的,所以asp的话你自己需要考虑怎么做。*/

解决方案十一:
.net内存区域是自动化地动态(指数式快速)增长的,但是当你释放了一些内存数据之后它并不会立刻缩小,而是留给以后重复使用。也就是说,.net全都自动做这些。用不着你操心。
解决方案十二:
如果你能够在内存中保存一个10G的图片对象,你就尽管保存好了。当你根本没有加载大数据,那么初始内存占用也很小。当你用了大的数据,自动申请大块儿内存控件。当你释放你的大的数据对象,内存也不会收缩,而是会自动留给以后使用。而且内存管理系统会经常地合并、浮动几十万、上百万“小的”数据对象,为大型的对象留出大块儿空间来。如果你还非要c++的那些不安全、根本不具有内存浮动机制、动不动溢出的代码的话,那么就只好回去用c++了。
解决方案十三:
你如果担心内存会被net无意间释放,你可以定义成静态变量。静态变量始终驻留在程序的整个生命周期

时间: 2024-09-11 05:55:47

C#中如何动态开辟大的内存区域?的相关文章

在vb.net中如何动态添加控件ovalshape(求大神帮帮小弟)

问题描述 在vb.net中如何动态添加控件ovalshape(求大神帮帮小弟) 控件button在vb.net中可以动态添加,但是ovalshape却不能,如:(button的动态添加) dim mybutton as new button ...... mybutton.text="" ..."" mybutton.location=new point() .... me.controls.add(mybutton) addhandler mybutton.cli

释放动态申请数组内存-C++中动态申请的数组内存异常时内存释放问题

问题描述 C++中动态申请的数组内存异常时内存释放问题 在C++的一个方法中动态申请了一段数组的内存,还未通过delete[] 语句释放这段内存,方法异常,此时代码不会执行后面的delete[] 语句了,那么前面申请的这段数组内存怎么释放? C++中的auto_prt只支持单个对象动态内存的管理,对于数组动态申请的内存怎么管理? 解决方案 应该在运行期系统自动帮你归还,前提是你的数组是由class构成,但不是内置类型.详见EFFECTIVE C++第三版条款52(写了placement new也

update-求大神指点db2 中存储过程动态赋值列名的问题

问题描述 求大神指点db2 中存储过程动态赋值列名的问题 我想在存储过程里,执行一个update,其中set后的列名和值都是变量,需要通过while--do --去判断.可是写完之后保存不报错,运行,就各种报错,换成select * from test where col1=? 在传一个变量久不报错,求教.我该怎么写啊.网上差了好多都是select的,就没有update 对列名赋值的.请大神们告诉一声呗.我纯粹是个小白.就是看资料里写的.请大神指点. 我写了一个test 大概如下: 解决方案 自

c 字符串输入-c语言中如何动态输入字符串而不需要事先定义字符数组大小

问题描述 c语言中如何动态输入字符串而不需要事先定义字符数组大小 如标题 c语言中如何动态输入字符串而不需要事先定义字符数组大小或为字符指针分配空间 解决方案 你这个要求实际使用度太低,或者说,完全没有必要非要这样去想. 解决方案二: c语言中字符串与字符数组c语言中的字符数组与字符串C语言 字符数组和字符串 解决方案三: 你这样定义好了char *p; 解决方案四: #include #include #include #define Step 10 //空间增加的步长. char * get

在AIX V5.3中使用MALLOCDEBUG隔离并解决内存泄漏-用于完成烦琐任务的有用工具

AIX Version 5.3 中附带的 malloc 子系统监视工具 MALLOCDEBUG,可以帮助您隔离内存泄漏. 内存泄漏是非常棘手的问题,并且处理起来需要很大的代价,所以使用好的工具以确定并了解出现泄漏的 原因是非常重要的.本文中提供的示例代码将向您展示处理内存泄漏的一种方法. 引言 在编写应用程序时进行动态内存分配是非常必要的.它可以在程序运行的过程中帮助分配所需的内存 ,而不是在进程启动的时候就进行分配.然而,有效地管理这些内存同样也是非常重要的.在大型的.复 杂的应用程序中,内存

StreamReader.ReadLine()读取大文本内存无法释放

问题描述 直接上代码:using(Streamstream=File.OpenRead(@"d:\1.txt")){StreamReadersr=newStreamReader(stream);sr.ReadLine();sr.Close();}很简单的代码,有人可以告诉我为什么吗? 解决方案 解决方案二:"内存无法释放"的具体含义是什么呢?假设你有4G内存,有3G剩余内存,在.net程序运行这个进程时它占用了50M内存(这么一点点),而且1个小时之后也还是占用几十

对<<在ASP中改善动态分页的性能>>的不足与修正建议

对<<在ASP中改善动态分页的性能>>的不足与修正建议呵呵,可以进精华区吗?用了我一天的时间.两位张兄的<<在ASP中改善动态分页的性能>>一文给我很大的启发,在此表示感谢,但在我想来还是有一些不足的地方.一是无法反应一些随更新的信息.    加设现为一BBS,那么随时更新的信息有    每个贴子的点击    新加贴子的信息,这些在两位张兄兄的方案中无法自动更新,只有用户在更改查询时才能使用.二是内存使用太多,事实上对于一个论坛来讲,大多数人还是按顺序来访问

在ASP中改善动态分页的性能

动态|分页|性能 From computerworld 在ASP中改善动态分页的性能人民银行济南分行清算中心 张立锋 山东省水利科学研究院 张 禾 -------------------------------------------------------------------------------- 概 述 ---- 现在有不少介绍利用ASP实现动态分页的文章,方法大同小异,就是每次利用ADO返回原始数据满足条件记录集中的指定页.但在实际工程应用中,原始数据量通常很大,原始数据的加工比较

教你在Delphi程序中使用动态图标

在应用程序的编写中,组合框(ComboBox).列表框(ListBox).等常见的部件,通常不仅要用于显示文字,而且还要显示其与文字相关的图标.在一般的Windows应用程序中,这些图标的显示都要随列出的显示文本的变化而变化,例如在组合框中列出当前目录下的所有文件时,在组合框左边就显示与文件名相关联的图标,这就是所谓的动态图标.在Delphi中使用动态图标的步骤如下: 一.图标的获取 要使用动态图标,首先要解决的是如何获得显示文本和与其相关联的图标句柄.该图标通过文件关联由系统注册表决定,并且在