草庐IT

GC_concurrent

全部标签

android - 由于 Android GC 性能而改变编码风格,有多远是太远了?

我一直听说Android应用程序应该尽量限制创建的对象数量,以减少垃圾收集器的工作量。您可能不希望创建大量对象来跟踪有限的内存占用,这是有道理的,例如在传统的服务器应用程序上,在几秒钟内创建100,000个对象并非闻所未闻。问题是我应该走多远?我已经看到大量依赖静态的Android应用程序示例,以便据称“加快速度”。将需要进行垃圾收集的实例数量从几十个增加到数百个真的会有那么大的不同吗?我可以想象改变我的编码风格,现在创建数十万个对象,就像您在成熟的Java-EE服务器上可能拥有的那样,但依靠一堆静态来(据说)减少要被垃圾收集的对象的数量似乎奇怪。为了创建高性能Android应用,真正

【CLR C#】面向面试的.Net的GC(垃圾回收)机制及其整体流程

【CLRC#】浅析.Net的GC(垃圾回收)机制及其整体流程写在前面:在.NET程序开发中,为了将开发人员从繁琐的内存管理中解脱出来,将更多的精力花费在业务逻辑上,CLR提供了自动执行垃圾回收的机制来进行内存管理,开发人员甚至感觉不到这一过程的存在。.NET程序可以找出某个时间点上哪些已分配的内存空间没有被程序使用,并自动释放它们。自动找出并释放不再使用的内存空间机制,就称为垃圾回收机制。本文主要介绍dotnet中的GC(垃圾回收)机制及其整体流程。本文关键字:CLR、.Net、GC(垃圾回收)、C#、面试文章目录【CLRC#】浅析.Net的GC(垃圾回收)机制及其整体流程一、定义1.什么是G

android - 其他进程调用 GC 会减慢我的游戏速度

我正在为Android>=2.1编写实时街机游戏。在游戏过程中,我不会分配内存,以免引诱GC。因为如果GC调用,它需要处理器70-200毫秒。用户将其视为“哦,不,那个游戏是滞后的......”。我检查了LogCat。有很多GC_FOR_MALLOC或GC_EXPLICIT。但是...不是来self进程的PID!我的游戏不会引起他们。它们是由于其他进程在后台运行引起的。一些墙纸、小部件、radio、电子邮件、天气预报和其他服务......完全看不懂。例如,当墙纸消失时,我想它的onPause()会被调用。因此,它应该停止所有线程并且当然不分配任何内存(或调用System.gc())。也

android - System.gc() 导致从 Activity 的第二次启动开始变慢

我遇到了一个非常奇怪的现象(测试设备:HTCDesireHD,Android2.3.5)。我知道System.gc()是不必要的和不鼓励的,我不会尝试提出其他建议,但重点是它也不应该引起问题(即它至多应该是无用的)。我有一个应用程序,在其View层次结构中包含一个GLSurfaceView。GLSurfaceView被实例化并添加到Activity.onCreate()中。通常,应用程序是这样工作的:用户启动应用程序并转到主菜单用户选择一个主菜单项,将GLSurfaceView设置为View.VISIBLE用户在GLSurfaceView上玩内置游戏用户转到主菜单并退出Activity

android - 错误 : java. util.concurrent.ExecutionException : com. android.ide.common.process.ProcessException:

这是我的gradle控制台的输出请帮我解决这个错误,我无法构建我的项目Information:Gradletasks[:facebook:generateDebugSources,:facebook:mockableAndroidJar,:facebook:prepareDebugUnitTestDependencies,:facebook:generateDebugAndroidTestSources,:lagaiKhai:generateDebugSources,:lagaiKhai:mockableAndroidJar,:lagaiKhai:prepareDebugUnitTes

android - 滚动 ListView 时有很多 GC(使用 holder 模式)

这是一个与this类似的问题,但解决方案不起作用。问题是ListView的滚动非常缓慢,这是因为有很多很多GC。我使用holder模式(View缓存),您可以在下面的代码中看到:publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ViewHolderholder;if(convertView==null){convertView=mInflater.inflate(R.layout.eventrow,parent,false);holder=newViewHolder();holder.title=(TextVi

android - 即时运行 java.lang.OutOfMemoryError : GC overhead limit exceeded

我已升级到AndroidStudio2.1,但在尝试构建和运行我的企业大项目时出现此错误:Executionfailedfortask':app:transformClassesWithDexForMyAppDebug'.com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:GCoverheadlimitexce

android - 为什么一个简单的应用程序中有这么多 GC_FOR_ALLOC?

我从dalvikvm获得了太多的GC_FOR_ALLOC。我从REST服务获取XML:在一个Activity中,我以编程方式(我)解析了大约100行,在另一个Activity中,我使用SimpleXML解析了大约200行。在第一个中,我得到了50个GC_FOR_ALLOC。在第二个中,我得到了300个!(我什至不能全部发布,正文有29579个字符,并且只允许30k)我搜索了一下,几乎每个人都提示gc_for_"M"alloc而不是gc_for_"A"lloc。SimpleXML的问题是因为创建了实例吗?我将通过dalvikvm发布logcat转储,也许这些值有一些信息。非常感谢您的帮助

c++ - tbb::concurrent_unordered_multimap 中的错误?即使是单线程,条目也会丢失

我的理解是,如果我只使用一个线程,tbb::concurrent_unordered_multimap应该表现得像std::unordered_multimap。但是,在这个例子中,它不会:#include"tbb/concurrent_unordered_map.h"#include#includestructmyhash{size_toperator()(constint&a)const{return1;}};intmain(){tbb::concurrent_unordered_multimaptbbidx;std::unordered_multimapstdidx;for(in

java - 是否有与 java.util.concurrent.locks.ReentrantReadWriteLock 等效的 C++?

我想控制对一组数据类的getter和setter的访问,使它们可以同时从多个线程安全地访问。我之前在Java中使用java.util.concurrent.locks.ReentrantReadWriteLock完成过此操作,非常轻松。但是现在我在我当前的C++项目中遇到了很多麻烦,因为我找不到可重入的读/写锁实现。具体来说,我想要一个允许线程在已经拥有写锁的情况下获得读锁,而不会阻塞且不会先放弃写锁。原因很简单:我的一些setter方法调用getter方法,前者(通常)获得写锁,后者获得读锁。我不想为了解决锁类中的限制而扭曲我简单的getter/setter架构。我试过Qt(4.8)