草庐IT

GC_concurrent

全部标签

python - 在 concurrent.futures 中获取异常的原始行号

使用concurrent.futures的示例(2.7的反向移植):importconcurrent.futures#line01deff(x):#line02returnx*x#line03data=[1,2,3,None,5]#line04withconcurrent.futures.ThreadPoolExecutor(len(data))asexecutor:#line05futures=[executor.submit(f,n)fornindata]#line06forfutureinfutures:#line07print(future.result())#line08输出

Python 的 `concurrent.futures` : Iterate on futures according to order of completion

我想要类似于executor.map的东西,除了当我迭代结果时,我想根据完成顺序迭代它们,例如首先完成的工作项应该首先出现在迭代中,依此类推。这样,如果序列中的每个工作项都还没有完成,迭代就会阻塞。我自己知道如何使用队列来实现这一点,但我想知道是否可以使用futures框架。(我主要使用基于线程的执行器,所以我想要一个适用于这些的答案,但也欢迎提供一般性的答案。)更新:感谢您的回答!您能解释一下我如何将as_completed与executor.map一起使用吗?executor.map是我使用future时最有用和最简洁的工具,我不愿意手动开始使用Future对象。

python - concurrent.futures 和 asyncio.futures 有什么区别?

澄清这个问题的原因:使用同名的两个模块会造成混淆。它们代表什么使它们与众不同?一个人可以解决哪些任务而另一个人不能解决,反之亦然? 最佳答案 asynciodocumentation涵盖差异:classasyncio.Future(*,loop=None)Thisclassisalmostcompatiblewithconcurrent.futures.Future.Differences:result()andexception()donottakeatimeoutargumentandraiseanexceptionwhenth

JVM的三种常见GC:Minor GC、Major GC与Full GC

文章目录JVM的GCJVMGC的种类GC的触发机制年轻代GC(MinorGC)触发机制老年代GC(MajorGC/FullGC)触发机制FullGC触发机制为什么需要把Java堆分代?扩展:分代回收机制的三个假说JVM的GCGC:垃圾回收GC英文全称为GarbageCollection,即垃圾回收。Java中的GC就是对内存的GC。Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放。Java对象的分配,程序员可以通过new关键字,Class的new-Instance方法等来显示的分配;而对象的释放,程序员不能实时的进行释放,这就需要GC来完成。JVMGC的种类JVM常见的GC包括

python - ImportError : No module named concurrent. futures.process

我已按照Howtousevalgrindwithpython?中给出的程序进行操作。用于检查我的python代码中的内存泄漏。路径下有我的python源码/root/Test/ACD/atech我在PYTHONPATH中给出了上述路径。如果我使用位于/usr/bin/下的默认python二进制文件运行代码,一切正常。我需要使用我手动构建的python二进制文件运行代码,该二进制文件位于/home/abcd/workspace/python/bin/python然后我收到以下错误fromconcurrent.futures.processimportProcessPoolExecutor

java - GC 花了三个小时来降低 1.2GB 的堆,可能是什么原因?

在我们的其中一台服务器上,垃圾收集花了将近三个小时来尝试(成功地)降低1.2GB的堆内存。从1.4GB到200MB。在此期间CPU使用率很高,几乎80-100%。可能是什么原因?我们有4台具有相同配置(JVM设置、服务器配置、硬件、网络)的此类服务器,假设没有人对其进行任何更改,那么特定服务器运行3小时GC的原因可能是什么。所有其他服务器每次GCActivity只需要5到10分钟。附上一张来自HPBAC的图表,供您引用。显示我认为GC启动的时间,以及GC停止的时间。(正如Stephen指出的更确凿的发现)当服务器管理员回复我时提供这些信息:您所使用的JVM的确切版本使用。(标准Java

java - 如何最小化 GC_FOR_ALLOC 的出现?

我的应用程序导致这些可怕的GC_FOR_ALLOC在特定位置(方法)多次发生:12-2922:20:30.229:D/dalvikvm(10592):GC_FOR_ALLOCfreed1105K,14%free10933K/12615K,paused33ms,total34ms12-2922:20:30.260:D/dalvikvm(10592):GC_FOR_ALLOCfreed337K,13%free11055K/12615K,paused25ms,total26ms12-2922:20:30.288:D/dalvikvm(10592):GC_FOR_ALLOCfreed278K,

java - 如果 JVM 在进行 GC 时不断移动对象,它如何解析引用?

我正在阅读有关JVM调优的文章,我突然想到JVM在执行GC时会不断移动对象。但是Java对象之间存在相互引用,人们会认为这是作为指针实现的,但是JVM不可能在每次移动对象后遍历整个堆,并更新所有引用;这肯定会永远持续下去。那么,如果引用没有改变,但对象的物理位置发生了变化,它如何解析引用呢?我已经阅读了很多关于JVM的文章,但从未在任何地方解释过,甚至没有暗示过。[编辑]我的意思是引用是单向的。从指针指向指向是“瞬时的”,但反过来需要完整的堆扫描。虽然有可能,但似乎不太可能。如果10K对象在一次次要收集中幸存下来,那么进行10K次全堆扫描以更新对这些对象的引用需要多长时间?必须使用某种

java - 什么是类的 GC 根?

在Java中,有称为垃圾收集根(GC根)的特殊对象。它们作为垃圾收集标记机制的根对象(见图)。Thisarticle描述了四种类型的GC根:局部变量活跃的话题静态变量JNI引用还提到:Classesthemselvescanbegarbage-collected.没有收集GC根,因此类本身不是GC根。那么类的GC根是什么? 最佳答案 SowhatareGCrootsfortheclasses?类加载器,有效地-通过其他GC根。如果没有任何东西可以到达类加载器——这意味着没有任何东西可以到达由该类加载器创建的任何类或这些类的任何实例—

java - java.util.concurrent.Future 的 scala.concurrent.Future 包装器

我将PlayFramework2.1.1与一个生成java.util.concurrent.Future结果的外部java库一起使用。我使用的是scalafuture而不是Akka,我认为从Play2.1开始这是正确的做法。如何将java.util.concurrent.Future包装到scala.concurrent.Future中,同时保持代码非阻塞?defgeConnection():Connection={//blockingwithgetconnectionPool.getConnectionAsync().get(30000,TimeUnit.MILLISECONDS)}