Tag: 内存

在C#中使用Cheat Engine中的指针

关于该计划 我有一个程序写入我正在试验的游戏的记忆。 当我使用常规静态地址时,代码对我很有用,但由于某些原因,一旦找到工作指针,我似乎无法做到这一点。 例如,我在指针扫描几次后在Cheat Engine中找到了这个: 每次加载游戏并编辑值时,此地址都有效。 问题是我不明白如何在我的程序中使用它。 这是我尝试插入值的声明变量: bool UnlimitedAmmo = false; string AmmoPointer = “031B7324”; // <— The address int[] AmmoOffset = { 0x2c, 0x1e8, 0x3c8, 0x6d4, 0x508 }; // <— It's pointers int AmmoToFill = 1337; // <— The Amount of ammo to give 我传递这些变量如下: MyMemory.ReadProcess = MyProcess[0]; MyMemory.Open(); int PointerAddress = HexToDec(AmmoPointer); […]

使用数组字段而不是大量的对象

根据这篇文章 ,我想知道人们使用数组存储大量数据集(比如说> 10,000,000个对象)来存储数据字段而不是实例化数百万个对象并增加内存开销(例如,12-每个对象24个字节,具体取决于您阅读的文章)。 每个属性的数据因项目而异,因此我不能使用严格的Flyweight模式,但会设想类似的东西。 我对这种表示的想法是,有一个’模板对象’…… class Thing { double A; double B; int C; string D; } 然后是一个容器对象,其中包含一个根据请求创建对象的方法…… class ContainerOfThings { double[] ContainerA; double[] ContainerB; int[] ContainerC; string[] ContainerD; ContainerOfThings(int total) { //create arrays } IThing GetThingAtPosition(int position) { IThing thing = new Thing(); //probably best done as a factory instead thing.A = ContainerA[position]; thing.B […]

进程内存大小 – 不同的计数器

我试图找出我自己的.Net服务器进程正在使用多少内存(用于监视和记录目的)。 我正在使用: Process.GetCurrentProcess().PrivateMemorySize64 但是,Process对象有几个不同的属性,让我可以读取使用的内存空间:Paged,NonPaged,PagedSystem,NonPagedSystem,Private,Virtual,WorkingSet 然后是“峰值”:我猜测它只存储了最后一次所用的最大值。 阅读每个属性的MSDN定义对我来说并没有太大帮助。 我必须承认我对内存管理方式的了解(就分页和虚拟内容而言)非常有限。 所以我的问题显然是“我应该使用哪一个?”,我知道答案是“它取决于”。 这个过程基本上会在内存中保存一堆列表,而其他进程与它进行通信并查询它。 我期待运行它的服务器需要大量的RAM,所以我随着时间的推移查询这些数据,以便能够估计RAM要求与其保留的列表大小相比。 那么……我应该使用哪一个?为什么?

使用文件流写入字节通过控制台输出进度时出现内存不足

我有以下代码在写大文件时抛出内存不足exception。 有什么我想念的吗? 我不知道为什么它会丢失内存错误,因为我认为Filestream最多只会使用4096个字节的缓冲区? 我不完全确定缓冲区的含义是否诚实,任何建议都会受到赞赏。 public static async Task CreateRandomFile(string pathway, int size, IProgress prog) { byte[] fileSize = new byte[size]; new Random().NextBytes(fileSize); await Task.Run(() => { using (FileStream fs = File.Create(pathway,4096)) { for (int i = 0; i < size; i++) { fs.WriteByte(fileSize[i]); prog.Report(i); } } } ); } public static void p_ProgressChanged(object sender, int […]

System.IO.File.ReadAllBytes用于大于2GB的文件

我有一个大文件,我需要复制到内存进行进一步处理。 该软件适用于小于2GB的文件,但只要它们通过此限制,我就会得到一个exception,即ReadAllBytes仅支持小于2GB的文件。 byte[] buffer = System.IO.File.ReadAllBytes(file); // exception if file > 2GB 将大于2GB的文件复制到内存的最快方法是什么? 该进程已经是64位,并且已经设置了标志gcAllowVeryLargeObjects 。

.NET – 函数变量存储在地址空间中的堆或堆栈上?

我在考试中遇到了以下问题: 当程序调用一个函数时,哪种类型的数据结构是为该函数中的变量分配的内存? 堆 队列 LIFO 堆 根据测试,虽然我选择了STACK,但HEAP是正确的答案。 有人可以在那里出色的人解释原因吗? 提前致谢。

内存中的二维数组

可能重复: 数组内存分配 – 分页 byte[,] myArray是否始终在连续内存块中? 我有一些代码可以处理存储在这些数组中的图像,一切正常,但我只是要问。 编辑:我使用不安全的代码。

加载图像时出现WP8 Out of Memory错误

我正在使用Windows Phone 8应用程序。 我正在研究Coverflowfunction,我正在尝试加载600项,但它总是显示Out of Memory Error 码: 我已经尝试检查它发生的原因,因为每次使用下面的代码加载图像 我尝试删除Width和Height ,它的工作原理,但我希望图像更大。 我怎样才能解决这个问题 ?

.net字典使用多少个哈希桶?

我知道这是一个实现细节,但我很好奇:.NET字典中使用的散列桶的数量是否有限制? 我假设它会在2 * numberOfElements附近 ,但是有没有人确切知道(或者它是否记录在任何地方)?

.NET对象大小

.net中堆分配对象的大小是多少,包括管理开销? 我假设对象是沿着4字节边界分配的,还是使用了不同的方法?