草庐IT

LOW_MEMORY

全部标签

android - 分配跟踪器 : How to use it to detect memory leaks?

我有两个Activity:A和B。从A开始,我转到ActivityB。然后我在B上调用finish()并返回到A。每次重复此过程时,分配的内存都会增加0.1MB。所以我想找出导致此泄漏的原因。我试图通过在刚才提到的过程中跟踪分配的内存来使用分配跟踪器。然后,当我按下“获取分配”时,我会得到一长串分配。我的问题是:如何阅读该列表以找出导致泄漏的原因?我试图通过释放ActivityB的onDestroy方法中的所有资源来解决这个问题,这有点帮助。而且,我没有在ActivityA的onResume方法中分配新内存。只是为了表明我正确使用了分配跟踪器: 最佳答案

android - PRIORITY_LOW_POWER 对比 PRIORITY_BALANCED_POWER_ACCURACY for google play service v2

我想知道融合位置,以上任何一项是否同时使用了gps+wifi网络?提供者有什么区别(是否使用gps)?从我在文档中看到的,区别只是距离我之前曾使用LocationManager并同时使用NETWORK_PROVIDER和GPS_PROVIDER来获得这两个提供程序的组合。 最佳答案 与以前的方法相比,新的融合位置提供者采用的方法略有不同。开发人员现在选择使用多少电池电量来计算位置,而不是使用哪些设备组件来计算位置。它使用GPS、Wi-Fi、移动网络和机载传感器的任何可用组合来计算位置。LocationRequest优先级设置现在是:

c# - Windows 手机 8 : Monitoring memory usage in mixed C#/C++

我想在使用WindowsPhone运行时组件的WindowsPhone8上监视混合C#/C++应用程序的内存使用情况。问题是,在VisualStudio(ALT+F1)中打开分析工具包时,我只有“执行”选项(http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202934%28v=与105%29.aspx)。对于“纯”C#项目,内存选项也可用。是否有其他或多或少简单的方法来监控内存使用情况?问候, 最佳答案 您是否考虑过构建自己的C#内存监控UI?它不会像Vi

c++ - 使用标准 :vector as low level buffer

这里的用法和Usingread()directlyintoaC++std:vector一样,但有一个重新分配的帐户。输入文件的大小未知,因此当文件大小超过缓冲区大小时,缓冲区将通过加倍大小重新分配。这是我的代码:#include#include#includeintmain(){constsize_tinitSize=1;std::vectorbuf(initSize);//sizesbuftoinitSize,so&buf[0]belowisvalidstd::ifstreamifile("D:\\Pictures\\input.jpg",std::ios_base::in|std:

c++ - memory_order_relaxed 的使用

Stackoverflow上已经有一些问题本质上是关于memory_order_relaxed的用例,例如:Understandingmemory_order_relaxedWhataresomeusecasesformemory_order_relaxed但是,我仍然对memory_order_relaxed的精确语义感到困惑。通常,memory_order_relaxed的示例用例类似于std::shared_ptr-基本上它保留一个原子计数器,但不需要与其他线程同步。好的,那么我的理解是这样的:std::memory_order_relaxed,当与load()一起使用时,仅保证

c++ - atomic_thread_fence(memory_order_seq_cst)是否具有完整内存屏障的语义?

完全/通用内存屏障是指相对于系统其他组件而言,屏障之前指定的所有LOAD和STORE操作似乎都发生在屏障之后指定的所有LOAD和STORE操作之前的情形。根据cppreference,memory_order_seq_cst等于memory_order_acq_rel加上在这样标记的所有操作上的单个总修改顺序。但是据我所知,C++11中的获取或释放围栏都不会强制执行#StoreLoad(存储后加载)排序。释放栅栏要求任何后续的写操作都不能对先前的读/写进行重新排序;获取栅栏要求后续的读/写操作不能与先前的任何读操作重新排序。如果我错了,请纠正我;)举个例子atomicx;atomicy

c++ - 具有 memory_order_relaxed 的存储是否有可能永远不会到达其他线程?

假设我有一个线程A写入atomic_intx=0;,使用x.store(1,std::memory_order_relaxed);。如果没有任何其他同步方法,使用x.load(std::memory_order_relaxed);其他线程需要多长时间才能看到这一点?鉴于标准给出的C/C++内存模型的当前定义,写入x的值是否可能完全保持线程本地?我手头的实际案例是线程B频繁读取atomic_bool以检查它是否必须退出;另一个线程,在某个时候,将true写入此bool,然后在线程B上调用join()。显然我不介意在线程B甚至可以看到atomic_bool已设置之前调用join(),我也不

c++ - memory_order_acquire 真的足以锁定自旋锁吗?

根据AntonyWilliams的书C++ConcurrencyinAction,自旋锁可以按如下方式实现:classspinlock_mutex{std::atomic_flagflag;public:spinlock_mutex():flag(ATOMIC_FLAG_INIT){}voidlock(){while(flag.test_and_set(std::memory_order_acquire));}voidunlock(){flag.clear(std::memory_order_release);}};如果我没理解错的话,memory_order_acquire标签确保了

c++ - delete p where p is a pointer to array always a memory leak?

在一次软件session上的讨论之后,我着手确定使用普通delete删除动态分配的基元数组是否会导致内存泄漏。我已经编写了这个小程序并使用在WindowsXP上运行的visualstudio2008对其进行了编译:#include"stdafx.h"#include"Windows.h"constunsignedlongBLOCK_SIZE=1024*100000;int_tmain(){for(unsignedinti=0;i然后我使用任务管理器监视我的应用程序的内存消耗,令人惊讶的是内存被正确分配和释放,分配的内存没有像预期的那样稳定增加我修改了我的测试程序以分配一个非基本类型数组

c++ - 在 Qt Creator 中使用 'Analyze Memory' 工具

我正在使用QtCreator开发C++应用程序,我正在尝试追踪一些内存泄漏。我关注了theseinstructions*,并在我的Ubuntu机器上安装了Valgrind。我从AnalyzeMemory部分开始我的应用程序,在单击停止按钮后,我被告知ToolAnalyzeMemory已完成,发现928个问题。但是,分析部分没有显示任何结果,该部分仍为空白。我做错了什么吗?在哪里可以找到内存分析的结果?*令人困惑的是,说明要求“发布”构建配置,但选择此选项会导致Qt中出现警告,指出内存分析工具需要调试配置。两种方法我都试过了。 最佳答案