草庐IT

mb_substr

全部标签

java - eclipse 内存分析器看到整个堆转储 (8GB) 的一小部分 (363,2MB)

我试图调查java.lang.OutOfMemoryError:GClimitexceeded这发生在我们部署在tomcat中的网络应用程序的高负载时。堆大小设置为8GB(-Xms2048m-Xmx8192m)在某个时间点,由于GCActivity开销,我们的应用程序变得无响应。我可以在日志中看到FullGC连续发生了多次。所以我使用以下命令(jmap-F-dump:format=b,file=/root/dump2.hprof4963)进行了堆转储。包含转储的文件大小为9GB。在进行转储后(应用程序被卡住了大约45分钟),发生了多次完整的GC,直到抛出OutOfMemoryError

java - Google App Engine 中 blobstore 对象的 1MB 配额限制?

我正在使用AppEngine(version1.4.3)directwritetheblobstore为了保存图像。当我尝试存储大于1MB的图像时,出现以下异常com.google.apphosting.api.ApiProxy$RequestTooLargeException:TherequesttoAPIcalldatastore_v3.Put()wastoolarge.我认为limitforeachobjectis2GB这是存储图片的Java代码privatevoidputInBlobStore(finalStringmimeType,finalbyte[]data)throws

java - JPA 标准 : Convert int to String then select from substring of resulting String

我有一个String作为参数(实际上是一个valueOf(anInteger),并且想将它与数据库中int值的子字符串进行比较。这是我的代码:ClinicPatientsclp=null;//GetthecriteriabuilderinstancefromentitymanagerfinalCriteriaBuildercb=getEntityManager().getCriteriaBuilder();//CreatecriteriaqueryandpassthevalueobjectwhichneedstobepopulatedasresultCriteriaQuerycrite

【Java】深入理解Java中的substring()方法

人不走空                                          🌈个人主页:人不走空      💖系列专栏:算法专题⏰诗词歌赋:斯是陋室,惟吾德馨作为Java中String类的重要方法之一,substring()在字符串处理中扮演着重要的角色。然而,其底层实现原理往往被忽略,本文将深入探讨Java中substring()方法的底层实现,以及如何有效地利用它进行字符串操作。1.方法概述在Java中,substring()方法用于从原字符串中提取子串,常见的方法签名有两种:publicStringsubstring(intbeginIndex)publicStrings

java - 嵌入式ActiveMQ启动报错 : Temporary Store limit is 51200 mb

我有一个SpringWeb应用程序,它将在独立的ActiveMQ上发送和监听。当我启动Web应用程序时,它显示:20:12:52.684[localhost-startStop-1]ERRORo.a.activemq.broker.BrokerService-TemporaryStorelimitis51200mb,whilstthetemporarydatadirectory:/root/activemq-data/localhost/tmp_storageonlyhas29021mbofusablespace我搜索并阅读了很多文章,它们都提到配置代理和系统使用以限制临时存储大小。但

java - 如何检测String.substring是否复制字符数据

我知道对于OracleJava1.7update6和更新版本,当使用String.substring时,String的内部字符数组被复制,对于旧版本,它是共享的。但是我发现没有官方API可以告诉我当前的行为。用例我的用例是:在解析器中,我喜欢检测String.substring是否复制或共享底层字符数组。问题是,如果字符数组是共享的,那么我的解析器需要使用newString(s)显式“取消共享”以避免内存问题。但是,如果String.substring无论如何都会复制数据,那么这就没有必要了,并且可以避免在解析器中显式复制数据。用例://possiblythequeryisveryve

java - 如何处理大小超过 2 mb 的 post 数据

我有以下模板的json发布数据{"themeId":JSONString,"themeName":JSONString,"tables":[{"tableName":JSONString,"records":[{"recordVersion":JSONString,"tableItems":[]}]}]}在Java方面,我有这样的RESTAPI:@POST@Path("/{themeId}")@Consumes({MediaType.APPLICATION_JSON})publicResponsepostTheme(@PathParam("themeId")StringthemeId,

java - String.substring 在 Java 中究竟做了什么?

我一直认为如果我执行Strings="HelloWorld".substring(0,5),那么我只会得到一个新字符串s="Hello".这也记录在JavaAPI文档中:“返回一个新字符串,它是该字符串的子字符串”。但是当我看到下面两个链接的时候,我开始怀疑了。Whatisthepurposeoftheexpression"newString(...)"inJava?Stringconstructorconsidereduselessturnsouttobeusefulafterall基本上,他们说如果我使用Strings="HelloWorld".subString(0,5),我仍然

java - substring() 的垃圾友好替代品

我有一个竖线分隔文件,我解析该文件以获取系统选项。环境对堆分配很敏感,我们正在努力避免垃圾回收。下面是我用来解析竖线分隔字符串的代码。这个函数被调用了大约35000次。我想知道是否有更好的方法不会造成如此多的内存流失。staticintcountFields(Strings){intn=1;for(inti=0;i编辑1,关于java版本:出于业务原因,我们停留在JDK1.6.0_25。关于String和String[]用法的编辑2:String[]用于执行系统设置逻辑。基本上,如果String[0].equals("true")然后启用调试。这就是使用模式关于垃圾收集对象的编辑3:输

Java 请求占用 40-50MB 内存(Spring JPA Hibernate)

我正在使用带有JPAHibernate的springboot。我正在监控Heap服务,发现我的每个请求都占用了大约40-50MB。所以内存会增加,在GC运行几次请求后,它会释放内存,并且这种情况会一直持续下去。所以我的第一个问题是这是内存泄漏吗?我也在尝试找出造成这种情况的原因。因此,我使用Runtime.getRuntime()freeMemory和totalMemory()来确定在获取一个数据库调用并用它填充投影时大约使用了15MBpublicinterfaceRecommendationProjection{publicStringgetType();publicbooleang