memory-management 相关问题

动态分配和释放部分物理内存的过程,以便在请求者之间尽可能公平并且没有饥饿的情况下响应程序请求。

Project-512.exe 中的 0x00007FFECFCBB16B (ucrtbase.dll) 抛出异常:0xC0000005:访问冲突写入位置 0xFFFFFFFFF9CF4880

我正在尝试用 C 语言读取文件,但是在编写了一堆代码以分配内存之后,我在实际读取文件时遇到了问题,因为我遇到了内存访问冲突,我尝试了

回答 1 投票 0

Python 中字典的内存使用情况?

当我在 sys 模块中使用字典的 getsizeof 方法时,我有点困惑。下面我创建了一个包含两个字符串的简单字典。两根弦的尺寸明显比那根大...

回答 4 投票 0

`getpwuid`从哪里分配内存?

我想了解函数 getpwuid 从哪里分配内存。我有一些示例代码,可以打印输入到程序的用户 ID 的用户名。 我阅读了

回答 1 投票 0

std::pmr::polymorphic_allocator 的用途是什么?

我正在 C++ 参考中查看这个示例: std::array 缓冲区; // 足以容纳所有节点 std::pmr::monotonic_buffer_resource mbr{buffer.data(), buffer.size(...

回答 1 投票 0

基于堆栈的动态内存分配 - 值得吗?

我想出了一种使用堆栈 RAM 而不是堆来进行动态内存分配的方法。 仍然有同样的警告,完成后忘记释放内存。 我通常使用嵌入式系统

回答 1 投票 0

Marshal 与 NativeMemory

我正在用 C# 编写虚拟机,并使用 Marshal 类来分配和释放内存,例如: 公共 ulong Allocate(int allocationSize) = (ulong)Marshal.AllocHGlobal(allocationSize); 噗...

回答 1 投票 0

通过多次分配处理函数中的清理

假设我有一个函数可以分配一些结构(对象),并且在设置其字段时必须分配额外的数据。由于每次分配都可能失败,因此对象创建可能只能部分成功。 W...

回答 1 投票 0

将 GCancellable 与 GtkAlertDialog 一起使用

出于测试目的,我编写了一个小程序,调用 GtkAlertDialog 并显示用户选择的结果。 我注意到了 GCancellable 的主题。 尽管研究了文档,我还是......

回答 1 投票 0

如果 std::new ...[length] 如果长度 > 0xffffffff,则 Visual Studio 编译错误 C2148

我正在 64 位模式下在 Visual Studio 上进行构建,并收到错误 c2148 - 数组的总大小不得超过 0x7fffffff 字节, 但 std::new 的实际阈值是 0xffffffff 并且不是 出现...

回答 1 投票 0

调整图像大小时内存泄漏

我有一种方法将 PDF 转换为图像(每个页面都转换为 UIImage),并调整每个图像的大小。方法正在以 QOS = 后台调用自定义队列。 当我尝试使用更多处理 PDF 时...

回答 2 投票 0

注册关键字:栈或堆

某些 C 内存管理函数(例如 malloc)将数据存储到堆而不是(默认)堆栈中。变量之前的 register 关键字(例如 register int n)指定 n 应该是 ...

回答 1 投票 0

有没有更有效的方法从一堆“x-y”图像中获取“x-z”切片?

我对一个物体进行了 CT 扫描:在 x-y 网格中包含像素的图像,每个 z 值一张图像。 我想制作 x-z 图像,从不同角度查看物体。 最明显的方法是:加载...

回答 1 投票 0

jarrayObject(字符串数组)在 JNI 调用中使用后是否应被删除/释放?

我正在使用 JNI 在 C++ 中进行实验,并且对如何处理我在 C++ 中创建的用作 JNI 调用参数的 Java 对象有疑问。 以这个非常简单的 java 类为例,带有一个字符串......

回答 1 投票 0

Rust 优化出乎意料地没有提高性能

我有一个 Rust 函数,它是我的应用程序中的瓶颈。我尝试对其进行优化,但没有看到预期的性能改进。这就是我所做的: fn my_function() -> Vec 我有一个 Rust 函数,它是我的应用程序中的瓶颈。我尝试对其进行优化,但没有看到预期的性能改进。这就是我所做的: fn my_function() -> Vec<f64> { let mut my_arr = vec![1.0; 30]; for i in 0..30 { my_arr[i] = // calculations to get the value } my_arr } fn another_func(arr: &[f64; 30]) -> i32 { let value = rnd_val; for i in 0..arr.len() { if value < arr[i] { return i as i32; } } 29 } 优化版本 fn my_function() -> i32 { let value = rand_val; let mut i = 0; while i < 30 { if value < /* calculations to get the value */ { return i as i32; } i += 1; } 29 } 在优化版本中,我组合了这两个函数,以避免创建 my_arr 向量,并可能减少迭代次数。但是,我没有看到我的应用程序有任何显着的性能改进。 我对两个版本都进行了分析,结果表明新版本中已经完全消除了分配。然而,尽管有这样的改进,我在我的应用程序中没有看到任何显着的性能提升。 鉴于分配已被取消,导致整体改善不足的原因可能是什么?我还应该考虑其他因素或可以尝试其他优化吗? 其他背景: 获取值的计算只是一些除法和求和,没有任何新变量。 该函数每秒被调用近22000000次 感谢您的见解! 由于您的优化并不重要,它只是划分操作和少一次分配,而这里“昂贵”的事情是计算,尤其是对计算机执行成本最高的除法(而不是一次分配),因此您的更改应该'不可见。 您的代码中发生的情况与机器实际执行的情况相差很多倍,您有编译器(在本例中是一个很好的编译器)在代码冗余时对其进行编辑(可能您的更改已经在已编译的代码中)代码),并且在编译器之上,机器本身对任务进行优化并重新排列它们,如果变化很小,它们可能是透明的。 如果你真的想检查结果是否更有效,你应该检查编译后的代码(找到一种方法使其汇编并检查更改的效果)。

回答 1 投票 0

Java 内存不足二维数组

我正在尝试创建一个二维数组,如下所示。 int NUM_RECORDS = 100480507; byte[][]completeArray = 新字节[NUM_RECORDS][6]; 100480507 * 6 ~= 0.6 GB 不就够了吗 看到这个问题...

回答 3 投票 0

如果栈和堆位于一个非常大的虚拟空间中,为什么它们会发生碰撞?

如果每个进程都有自己的地址空间,并且它比计算机的物理内存大得多,为什么我们不能将堆栈放在这个地址空间的末尾,而将堆放在开头......

回答 1 投票 0

内存不足时输出到 stdout 或 stderr

内存不足时如何输出内容? 我有一组自定义的 malloc[、realloc 和 calloc] 和 free 函数。 目前该项目仅使用它们作为普通版本

回答 1 投票 0

管理嵌套类的内存

假设我有一些名为 A、B 和 C 的嵌套类。C 类型的对象包含 B 类型的成员。B 类型的对象包含 A 类型的成员。 C 类型的对象在堆上实例化。这个类对象...

回答 1 投票 0

如何分析 FastAPI 端点中的内存?

我相信我部署的 API 中存在内存泄漏,但是我正在努力寻找一种简单的方法来分析应用程序的内存。我已经使用分析器来查找端点中的瓶颈......

回答 1 投票 0

如何优化 Java Union-Find 程序以避免在处理大型数据集时出现 OutOfMemoryError

这是我之前问题的后续 我已经成功实施了一个可行的解决方案: 包com.test; 导入java.io.*; 导入 java.util.*; 公共类 LineGroupProcessor { 私人

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.