草庐IT

reserved_memory

全部标签

c++ - 获取 OpenCV 错误 : Insufficient memory while running OpenCV Sample Program: "stitching_detailed.cpp"

我最近开始使用OpenCV,目的是将大量图像拼接在一起以创建大型全景图。为了开始我的实验,我查看了OpenCV文件附带的示例程序,以了解如何实现OpenCV库。因为我对图像拼接很感兴趣,所以我直接找到了“stitching_detailed.cpp”。代码可以在以下位置找到:https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/cpp/stitching_detailed.cpp?rev=6856现在,这个程序完成了我需要它完成的大部分工作,但我遇到了一些有趣的事情。我发现对于15个可选投影变形器中的9个,我在尝试运

c++ - 如何强制 Windows 向所有应用程序发送 'LOW_MEMORY' 信号?

我正在开发一些“释放RAM”工具,它必须强制Windows向所有应用程序发送'LOW_MEMORY'信号(要求所有应用程序释放它们未使用的数据、SQL服务器和文件缓存会被清除,因此您最终会获得大量额外的可用空间)。在C++中执行此操作的最佳方法是什么?对我来说最“自然”的解决方案是分配大量内存,但它是否“好”且“稳定”方法?也许在WinAPI或其他地方有任何适用于它的c++Windowsnative函数?附注该工具的概念来自(我知道更好的方法是......购买一些RAM,但我现在必须编写这样的工具):https://superuser.com/questions/214526/how-

c++ - CUDA 探查器 : Calculate memory and compute utilization

我正在尝试使用ubuntu上的CUDAnsight分析器为我的GPU加速应用程序的内存带宽利用率和计算吞吐量利用率建立两个总体测量值。该应用程序在TeslaK20cGPU上运行。我想要的两个测量值在某种程度上与此图中给出的测量值相当:问题是这里没有给出确切的数字,更重要的是我不知道这些百分比是如何计算的。内存带宽利用率Profiler告诉我我的GPU的最大全局内存带宽为208GB/s。这是指设备内存BW还是全局内存BW?它说的是全局,但第一个对我来说更有意义。对于我的内核,分析器告诉我设备内存带宽为98.069GB/s。假设最大208GB/s是指设备内存,那么我可以简单地将内存带宽利用

c++ - 在 MATLAB 中预分配内存 à la std::vector::reserve(n)

因此,当您大致了解尺寸要求时,reserve非常有用。有谁知道在MATLAB中预分配数组的类似方法?我对像下面这样的骇人听闻的(但有效的)方法并不感兴趣:x=zeros(1000,1);fori=1:10000ifi>numel(x)x=[x;zeros(size(x))];endx(i)=rand;endx(i+1:end)=[]; 最佳答案 “hacky”方法是唯一的方法。但是,您不需要检查ix=zeros(1000,1);fori=1:10000x(i)=rand;endx(i+1:end)=[];编辑:为了在保持数组加倍的同

c++ - 奇怪的 "Memory Leak Detection"错误 C++

我有一个非常奇怪的内存泄漏问题。我使用_CrtDumpMemoryLeaks来检查泄漏。这是我的WinMain函数:intAPIENTRY_tWinMain(_In_HINSTANCEhInstance,_In_opt_HINSTANCEhPrevInstance,_In_LPTSTRlpCmdLine,_In_intnCmdShow){UNREFERENCED_PARAMETER(hPrevInstance);UNREFERENCED_PARAMETER(lpCmdLine);//////////////////SETUPCHECKSFORMEMORYLEAKS///////////

c++ - std::memory_order 和三个线程的同步谜题

这是一个关于std::memory_order的问题C++11中的规则,当涉及到三个线程时。比如说,一个线程producer保存一个值并设置一个标志。然后,另一个线程relay在设置另一个标志之前等待这个标志。最后,第三个线程consumer等待来自relay的标志,这应该表明data已准备好供消费者使用。这是一个最小程序,采用C++引用(http://en.cppreference.com/w/cpp/atomic/memory_order)中示例的样式:#include#include#includestd::atomicflag1=ATOMIC_VAR_INIT(false);s

c++ - 增加 Stack Size 的缺点以及 Stack Commit 和 Reserve 之间的区别

我最近遇到了DinkumwareC++11的堆栈溢出问题库,到目前为止,我已经通过将StackCommit和StackReserve大小加倍来解决这个问题(我还没有遇到任何问题)。但是,我很好奇增加堆栈大小是否有任何缺点,而且,我不完全确定StackCommit和StackReserve之间的区别是什么(但是堆栈提交要小得多比堆栈保留)。 最佳答案 增加堆栈大小的明显后果是更多的内存使用。由于在大多数情况下堆栈与总内存相比并不大,所以这不是大问题。显然,如果有许多线程每个都使用大堆栈,那么这可能会占用机器中的大量可用内存-特别是如果

c++ - Rcpp Armadillo : Issue with memory usage

我已经开始使用Rcpp。我很喜欢。我对编程相当陌生。我有一个关于内存使用的问题。下面是一个可重现的问题:library(RcppArmadillo)library(inline)code我的理解是,在上面的问题中,唯一的内存使用是当我将数组分配给变量时。输入在R.所以我应该只使用大约1.6gb(2*2*50*8=1600)。当我去Rcpp时,我初始化了变量输入_使用作为指针的SEXP对象。所以这不应该使用任何额外的内存。然后当我初始化变量打扰,我也使用一个指针并设置copy_aux=FALSE。所以我不应该使用任何内存。因此,如果我的理解是正确的,那么我在运行代码时应该只使用1.6GB

c++ - std::memory_order_seq_cst 是如何工作的

我从以下位置获取了有关std::memory_order_seq_cst的示例:http://en.cppreference.com/w/cpp/atomic/memory_order#include#include#includestd::atomicx={false};std::atomicy={false};std::atomicz={0};voidwrite_x(){x.store(true,std::memory_order_seq_cst);}voidwrite_y(){y.store(true,std::memory_order_seq_cst);}voidread_x_

c++ - 内存泄漏 : unable to break on a memory allocation number

我正在尝试找出内存泄漏问题。我的项目是一个基于ATL的对话框项目,它使用DirectShow和标准库。我的程序中总共有45个内存泄漏,每个都是24个字节。我在我的stdafx.h中#define'd_CRTDBG_MAP_ALLOC等,以及DEBUG_NEW以获取每个内存泄漏的文件和行号。但是,没有打印文件行号。内存块都是“普通”block,看起来像这样:{180}normalblockat0x003E6008,24byteslong.Data:_>>W>A0AE3E00B05F3E00A0AE3E0057000000我尝试将以下行添加到_tWinMain()的开头_CrtSetBre