草庐IT

C++流到内存

全部标签

java - 在 Java 中,有没有办法随机化一个太大而无法放入内存的文件?

我想做的是打乱行(从CSV读取),然后将第一个随机的10,000行打印到一个csv,其余的打印到一个单独的csv。使用较小的文件我可以做类似的事情java.util.Collections.shuffle(...)for(inti=0;i但是对于非常大的文件,我现在得到OutOfMemoryError 最佳答案 你可以:使用更多内存或洗牌不是实际的CSV行,而是行号的集合,然后逐行读取输入文件(当然是缓冲的)并将该行写入所需的输出文件之一。 关于java-在Java中,有没有办法随机化一

java - 在 Java 中处理大字符串时出现 StringBuilder 内存不足错误

我从Stringtest+=str;开始,其中test以指数级增长,包含成千上万个字符。运行需要45分钟,可能是因为创建了大字符串并删除了垃圾。然后我像这样错开输入,将其带到30秒。这似乎是一种廉价的方法,但效果很好:if(secondDump.length()>50){intermedDump=intermedDump+secondDump;secondDump="";}if(intermedDump.length()>100){thirdDump=thirdDump+intermedDump;intermedDump="";}if(thirdDump.length()>500){f

java - 来自文件的 ObjectInputStream 导致内存泄漏

我有一个巨大的文件,其中包含一个接一个由ObjectOutputStream写入的对象列表。for(Objectobj:currentList){oos.writeUnshared(obj);}现在我想使用ObjectInputStream读取这个文件。但是,我需要同时读取多个文件,所以无法将整个文件读入内存。但是,使用ObjectInputStream会导致堆内存不足错误。据我了解,这是因为ObjectInputStream存在内存泄漏并在返回读取对象后仍保留对读取对象的引用。我怎样才能让ObjectInputStream不维护任何读取的引用? 最佳答案

java - 内存泄漏在 MAT 中显示为 GC root : Native Stack

我有一些我运行的第三个库代码,一段时间后我遇到了OutOfMemoryError。所以我启动了EclipseMAT并分析了内存。现在似乎无法释放内存,因为有一个对象显示为GCroot:NativeStack。阅读documentation:Inoroutparametersinnativecode,suchasuserdefinedJNIcodeorJVMinternalcode.ThisisoftenthecaseasmanymethodshavenativepartsandtheobjectshandledasmethodparametersbecomeGCroots.Forexa

java - Java 内存模型中的 Happens-Before 关系

关于JLSch17ThreadsandLocks,它说“如果一个Action发生在另一个Action之前,那么第一个Action对第二个Action可见并在第二个Action之前排序”;我想知道:(1)说“之前订购”究竟是什么意思?因为即使action_ahappens-beforeaction_b,在某些实现中action_a也可以在action_b之后执行,对吗?(2)如果action_a发生在action_b之前,是否意味着action_a不能看到action_b?或者action_a可能看到也可能看不到action_b?(3)如果action_a没有发生在action_b之前,

Java 内存模型 happens-before 线程池交互的保证

Java内存模型是否为线程池交互提供happens-before保证?特别是,在运行工作队列中的项目结束之前,线程池工作线程所做的写入对于之后运行队列中下一个项目的工作线程是否可见?规范(我个人认为这个FAQ很有用:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#synchronization)声明“线程上对start()的调用发生在启动线程中的任何操作之前。”或者简单地说,您在启动线程之前所做的任何内存写入都将在启动的线程将要执行的run()方法之前执行并对其可见。它与线程池不同,start()通常会在您进行

java - 物理内存使用率过高

当我尝试使用storm在本地模式下运行拓扑时出现此错误mvncompileexec:java-Dexec.classpathScope=compile-Dexec.mainClass=my.Topology错误是ERRORbacktype.storm.util-Asyncloopdied!java.lang.OutOfMemoryError:Physicalmemoryusageistoohigh:physicalBytes=3G>maxPhysicalBytes=3G我该如何解决?我不知道我应该增加哪个物理内存!如果我在生产模式下运行拓扑,这个错误会消失吗?UPDATEPhysica

java - swisscom cloud foundry spring boot app内存不足

我有一个SpringBoot应用程序,它只需要max.284MB内存。但我只能以最大启动应用程序。768MB内存。即使我以后减少内存,我总是会收到以下错误:[APP/PROC/WEB/0]ERRCannotcalculateJVMmemoryconfiguration:Thereisinsufficientmemoryremainingforheap.Memorylimit384Mislessthanallocatedmemory672509K(-XX:ReservedCodeCacheSize=240M,-XX:MaxDirectMemorySize=10M,-XX:MaxMetas

Java 加密内存类加载器

我会开门见山,这样您就不必阅读很多书了。基本上,我有一个AES-128位加密的Jar文件。我想制作一个启动器,以便我可以将这个加密的Jar加载到内存中并运行它(使用key)。我有一个简单的类加载器在工作,但除非我将它解密到一个目录并运行它,否则它显然不会执行我需要的操作(解密和内存加载)。TL;DR:我需要在内存中运行AES-128位加密Jar。非常感谢任何帮助,请随时提问! 最佳答案 有关如何从byte[]加载jar/class的示例代码(这应该是您在内存中解密后得到的结果/无需将其保存在文件系统中的任何位置)参见http://w

java - 将字段设置为 `volatile` 是否可以防止并发情况下的所有内存可见性问题?

使类字段volatile是否可以防止并发情况下的所有内存可见性问题?对于下面的类,获取Test对象引用的线程是否有可能首先将x视为0(int的默认值)然后10?我认为这是可能的当且仅当Test的构造函数在未完成(不正确的发布)的情况下放弃了this引用。有人可以验证/纠正我吗?classTest{volatileintx=10;}第二个问题:如果是finalintx=10;怎么办? 最佳答案 根据JMM,您实际上不能保证看到x=10。例如,如果你有Testtest=null;Thread1->test=newTest();Threa