活动介绍

java.util.concurrent.ConcurrentHashMap

时间: 2023-10-27 12:34:32 AIGC 浏览: 160
java.util.concurrent.ConcurrentHashMap是一个线程安全的哈希表,它支持高并发的读写操作。与普通的HashMap不同的是,ConcurrentHashMap采用了分段锁的机制,即将整个Map分成多个Segment,每个Segment上都有一个独立的锁,不同的Segment之间互不影响,这样在进行并发读写操作时只需要锁住当前需要进行操作的Segment,而不需要锁住整张表,从而大大提高了并发读写的效率。此外,ConcurrentHashMap还提供了一些线程安全的遍历方法,可以在不加锁的情况下安全地遍历Map中的元素。
相关问题

java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)

### 关于 `ConcurrentHashMap` 引发的 `NullPointerException` 在 Java 中,当使用 `ConcurrentHashMap` 的过程中发生 `NullPointerException` 时,通常是因为尝试访问或操作一个为 `null` 的键或值。以下是针对该问题的具体分析和解决方案。 #### 错误原因 根据提供的错误日志,可以发现以下几点: - 当调用 `ConcurrentHashMap.get()` 方法时,如果传入的参数为 `null` 或者内部实现逻辑中存在未初始化的对象,则会抛出 `NullPointerException`[^2]。 - 类似的情况也可能发生在其他方法上,比如 `containsKey()` 和 `remove()` 等[^1]。 这些异常表明,在某些情况下,程序可能试图对尚未正确初始化或者已经移除的数据结构执行操作。 #### 解决方案 为了防止此类异常的发生,可以从以下几个方面入手改进代码: 1. **验证输入数据的有效性** 在向 `ConcurrentHashMap` 添加新条目之前以及每次读取前都应确认其合法性。例如: ```java if (key != null && value != null) { map.put(key, value); } ``` 2. **同步处理多线程环境下的并发修改** 虽然 `ConcurrentHashMap` 已经具备一定的线程安全性,但在极端条件下仍需额外注意。可以通过显式的锁机制来进一步保障一致性。例如: ```java synchronized(map) { Object result = map.get(someKey); // 进一步业务逻辑... } ``` 3. **捕获潜在的运行期错误并记录日志** 使用 try-catch 块包裹可能会出现问题的部分,并及时打印堆栈信息以便后续排查。如下所示: ```java try { Object obj = map.get(maybeNullKey); } catch (NullPointerException e) { System.err.println("Caught NPE while accessing map."); e.printStackTrace(); } ``` 4. **升级 JDK 版本** 如果当前使用的 JDK 较旧(如低于 8),建议考虑更新至最新稳定版本。因为较新的版本往往修复了许多已知缺陷并且性能更优[^3]。 5. **参考成功案例调整策略** 可借鉴他人分享的成功经验来进行针对性优化。例如有开发者提到过一种经过实践检验有效的办法能够彻底消除这类异常情况[^4]。 通过上述措施可有效降低甚至完全规避由 `ConcurrentHashMap` 所引起的 `NullPointerException` 风险。 ```java // 示例:综合运用多种手段预防NPE public class SafeConcurrentHashMap<K,V> extends ConcurrentHashMap<K,V> { @Override public V put(K key, V value){ if(null == key || null ==value ){ throw new IllegalArgumentException("Neither Key nor Value can be Null"); } return super.put(key,value); } @Override public boolean containsKey(Object key){ if(null==key){ return false; } return super.containsKey(key); } } ```

Exception in thread "main" java.lang.StackOverflowError at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)

### Java程序中 `java.lang.StackOverflowError` 异常解决方案 #### 一、理解 `StackOverflowError` 当Java虚拟机(JVM)检测到线程调用栈超出其容量时会抛出此异常。通常由无限递归引起,即方法反复调用自己的情况。 对于给定的代码片段: ```java public class StackOverflowErrorExample { public static void main(String args[]) { a(); } public static void a() { a(); // 死循环导致堆栈溢出 } } ``` 上述例子展示了最简单的死循环场景,其中静态方法`a()`不断自我调用直到耗尽可用的栈空间[^1]。 #### 二、针对ConcurrentHashMap get 方法引发的 `StackOverflowError` 原因分析与修复措施 考虑到并发哈希表操作可能涉及复杂的内部逻辑以及潜在的竞争条件,某些情况下确实可能发生意外行为。然而,标准库中的`ConcurrentHashMap.get(Object key)`本身不应该直接造成`StackOverflowError`。更有可能是因为不当的应用层设计模式或第三方依赖引入了间接问题。 具体来说,如果应用程序存在如下情形,则可能会触发此类错误: - **过度嵌套的对象图结构**:当键值对之间的关联形成非常深甚至环状的关系链路; - **自定义序列化/反序列化机制缺陷**:特别是在处理复杂对象图形时未能妥善管理状态转换过程; - **不恰当使用的代理模式或其他AOP特性**:比如Spring AOP框架下环绕通知(`Around Advice`)未正确实现终止条件而陷入无休止迭代; 为了防止这些问题的发生并有效解决问题,建议采取以下策略之一来调整业务逻辑或者优化现有架构: ##### 方案A: 防御性编程实践 确保任何可能导致深层递归的操作都设有合理的边界限制,并加入必要的断言检查以提前识别风险状况。例如,在遍历树形数据结构时设置最大深度阈值。 ##### 方案B: 修改AOP切面逻辑 假设问题是由于AOP引起的,那么可以考虑重构方面逻辑,避免不必要的重复拦截同一连接点。以下是改进后的伪代码示例: ```java @Override public Object invoke(MethodInvocation mi) throws Throwable { if (!alreadyAdvised(mi)) { // 添加判断是否已经处理过当前请求 advice.before(); try { return mi.proceed(); } finally { advice.afterReturning(); } } else { return mi.proceed(); // 不再应用额外的通知逻辑 } } private boolean alreadyAdvised(MethodInvocation invocation){ // 实现具体的判定逻辑... } ``` 通过这种方式可以在一定程度上缓解由于不良编织方式造成的性能瓶颈乃至致命性的运行期故障[^3]。 #### 三、其他注意事项 除了以上提到的技术层面的因素外,还需留意JAR文件冲突带来的影响。特别是多个日志门面桥接器共存于类路径之下容易诱发难以预料的行为变化。因此务必保持环境整洁有序,遵循最佳实践选用单一的日志抽象层组件[^2]。
阅读全文

相关推荐

package com.example.kucun2.entity.data; import android.os.Handler; import android.os.Looper; import android.util.Log; import com.example.kucun2.entity.Information; import com.example.kucun2.entity.RefTo; import com.example.kucun2.entity.RefType; import com.example.kucun2.function.MyAppFunction; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; /** * 可同步实体基类 * 实现实体状态管理、属性变更监听、服务端同步等功能 */ public abstract class SynchronizableEntity implements EntityClassGrassrootsid { private static final String TAG="SynchronizableEntity"; /** 获取操作端点URL */ public String getEndpoint(String type) { String key = "url_" + type + "_" + this.getClass().getSimpleName().toLowerCase(); return MyAppFunction.getStringResource("string", key); } //================ 服务端操作 ================// /** 创建实体到服务端 */ public void sync(String type, SyncCallback callback) { String endpoint = MyAppFunction.getStringResource("string", "url") + getEndpoint(type); Log.d(TAG, "创建端点: " + endpoint); ApiClient.post(endpoint, this, new ApiClient.ApiCallback<SynchronizableEntity>() { @Override public void onSuccess(SynchronizableEntity responseData) { if (responseData != null) { setId(responseData.getId()); } if (callback != null) callback.onSyncSuccess(SynchronizableEntity.this); } @Override public void onError(int statusCode, String error) { callback.onSyncFailure(error); } }); } public interface SyncCallback{ void onSyncSuccess(SynchronizableEntity synchronizableEntity); void onSyncFailure(String error); } }

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.nbheyi.hy_menjin.mapper.mapper4.YiDongMapper.getTablexx_flc at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53) at org.apache.ibatis.binding.MapperProxy.lambda$cachedMapperMethod$0(MapperProxy.java:61) at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:61) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:56) at com.sun.proxy.$Proxy64.getTablexx_flc(Unknown Source) at com.nbheyi.hy_menjin.timer.importRsxxTimer.import_hyc_xx(importRsxxTimer.java:62) at com.nbheyi.hy_menjin.timer.importRsxxTimer.access$100(importRsxxTimer.java:18) at com.nbheyi.hy_menjin.timer.importRsxxTimer$1.run(importRsxxTimer.java:43) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.nbheyi.hy_menjin.mapper.mapper4.YiDongMapper.getTablexx_flc at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53) at org.apache.ibatis.binding.MapperProxy.lambda$cachedMapperMethod$0(MapperProxy.java:61) at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:61) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:56) at com.sun.proxy.$Proxy64.getTablexx_flc(Unknown Source) at com.nbheyi.hy_menjin.timer.importRsxxTimer.import_ts(importRsxxTimer.java:175) at com.nbheyi.hy_menjin.timer.importRsxxTimer.access$200(importRsxxTimer.java:18) at com.nbheyi.hy_menjin.timer.importRsxxTimer$1.run(importRsxxTimer.java:44) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505)

我的idea即使设置10个G的xmx也会提示内存不足,这是memory use report,帮我分析下 ==================== HISTOGRAM ==================== Histogram. Top 50 by instance count [All-objects] [Only-strong-ref]: 1: [7.79M/ 525MB] [7.72M/ 521MB] byte[] 2: [7.78M/ 171MB] [7.71M/ 169MB] java.lang.String 3: [7.34M/ 359MB] [7.34M/ 359MB] org.jdom.Attribute 4: [5.24M/ 209MB] [5.24M/ 209MB] org.jdom.ContentList 5: [5.24M/ 335MB] [5.24M/ 335MB] org.jdom.Element 6: [5.24M/ 167MB] [5.24M/ 167MB] org.jdom.AttributeList 7: [5.24M/ 121MB] [5.24M/ 121MB] org.jdom.Attribute[] 8: [ 145K/5.24MB] [ 138K/4.99MB] java.util.HashMap$Node 9: [86.8K/3.12MB] [86.7K/3.12MB] java.util.concurrent.ConcurrentHashMap$Node 10: [69.9K/7.47MB] [68.8K/ 7.4MB] java.lang.Object[] 11: [39.9K/2.07MB] [22.4K/1.16MB] java.util.LinkedHashMap$Entry 12: [38.1K/4.72MB] [38.1K/4.72MB] java.lang.Class 13: [33.1K/ 663KB] [33.1K/ 663KB] com.intellij.openapi.vfs.newvfs.persistent.namecache.MRUFileNameCache$CacheEntryNameWithId 14: [27.3K/15.9MB] [22.4K/11.6MB] int[] 15: [25.5K/ 204KB] [25.5K/ 204KB] java.lang.Object 16: [22.5K/ 541KB] [21.4K/ 514KB] java.util.ArrayList 17: [21.3K/3.61MB] [17.2K/ 3.0MB] java.util.HashMap$Node[] 18: [20.0K/ 320KB] [20.0K/ 320KB] org.jetbrains.plugins.textmate.language.syntax.TextMateCapture$Name 19: [18.0K/ 720KB] [18.0K/ 720KB] com.intellij.util.xml.dom.XmlElement 20: [17.9K/1.14MB] [17.9K/1.14MB] org.jetbrains.plugins.textmate.language.syntax.SyntaxNodeDescriptorImpl 21: [15.9K/ 895KB] [15.7K/ 880KB] java.util.HashMap 22: [14.8K/ 888KB] [14.8K/ 888KB] com.intellij.util.containers.ConcurrentWeakKeySoftValueHashMap$WeakKey 23: [14.8K/ 710KB] [14.8K/ 710KB] com.intellij.util.containers.ConcurrentWeakKeyWeakValueHashMap$WeakValue 24: [14.4K/ 752KB] [12.5K/ 651KB] java.lang.invoke.MemberName 25: [13.2K/ 850KB] [13.2K/ 850KB] java.util.Collections$SingletonMap 26: [13.0K/ 782KB] [13.0K/ 782KB] java.util.EnumMap 27: [12.8K/ 358KB] [12.8K/ 358KB] org.jetbrains.plugins.textmate.language.syntax.SyntaxRuleProxyDescriptor 28: [10.3K/ 321KB] [9.42K/ 298KB] java.lang.Class[] 29: [ 9.9K/ 485KB] [ 9.9K/ 485KB] com.intellij.openapi.extensions.ExtensionDescriptor 30: [9.34K/ 410KB] [9.34K/ 410KB] jdk.internal.util.WeakReferenceKey 31: [ 9.3K/ 521KB] [8.84K/ 495KB] java.lang.invoke.MethodType 32: [8.95K/ 359KB] [8.95K/ 359KB] org.jetbrains.plugins.textmate.language.syntax.TextMateCapture[] 33: [8.43K/67.4KB] [ 8.3K/66.4KB] java.lang.invoke.ResolvedMethodName 34: [8.39K/ 486KB] [4.67K/ 270KB] java.lang.invoke.BoundMethodHandle$Species_LL 35: [8.25K/ 587KB] [5.79K/ 392KB] java.lang.String[] 36: [7.39K/ 569KB] [3.27K/ 252KB] java.util.LinkedHashMap 37: [7.33K/1.01MB] [6.45K/ 890KB] java.lang.reflect.Method 38: [5.95K/ 214KB] [5.95K/ 214KB] java.util.Hashtable$Entry 39: [5.94K/ 118KB] [5.94K/ 118KB] java.util.Collections$SingletonList 40: [5.86K/ 140KB] [5.75K/ 138KB] java.util.ImmutableCollections$List12 41: [5.76K/18.0MB] [5.76K/18.0MB] long[] 42: [5.74K/ 275KB] [2.53K/ 121KB] java.lang.ref.SoftReference 43: [5.57K/89.2KB] [5.57K/89.1KB] java.util.HashMap$KeySet 44: [5.28K/ 253KB] [5.28K/ 253KB] com.intellij.util.lang.ClassLoadingLocks$WeakLockReference 45: [5.23K/ 339KB] [5.23K/ 339KB] com.intellij.openapi.extensions.impl.XmlExtensionAdapter 46: [4.69K/93.9KB] [4.69K/93.9KB] sun.font.TrueTypeFont$DirectoryEntry 47: [4.64K/74.3KB] [4.64K/74.3KB] java.util.Collections$SingletonSet 48: [4.54K/ 181KB] [4.51K/ 180KB] java.lang.ref.WeakReference 49: [ 4.5K/ 229KB] [4.49K/ 229KB] java.lang.invoke.DirectMethodHandle 50: [4.32K/ 398KB] [4.27K/ 393KB] java.util.concurrent.ConcurrentHashMap [...removed 16832 lines...] Total - All: 45.1M 2.07GB 16882 classes (Total instances: 45149818) Total - Strong-ref: 44.9M 2.06GB 16775 classes (Total instances: 44932149) Top 10 by size: 1: [7.79M/ 525MB] [7.72M/ 521MB] byte[] 2: [7.34M/ 359MB] [7.34M/ 359MB] org.jdom.Attribute 3: [5.24M/ 335MB] [5.24M/ 335MB] org.jdom.Element 4: [5.24M/ 209MB] [5.24M/ 209MB] org.jdom.ContentList 5: [7.78M/ 171MB] [7.71M/ 169MB] java.lang.String 6: [5.24M/ 167MB] [5.24M/ 167MB] org.jdom.AttributeList 7: [5.24M/ 121MB] [5.24M/ 121MB] org.jdom.Attribute[] 8: [ 433/84.4MB] [ 433/84.4MB] org.jdom.Content[] 9: [5.76K/18.0MB] [5.76K/18.0MB] long[] 10: [27.3K/15.9MB] [22.4K/11.6MB] int[] Unreachable objects: 173K 11.9MB =================== HEAP SUMMARY ================== Analysis completed! Visited instances: 44976353, time: 3.002 min Update sizes time: 1.143 s Leaves found: 13440418 Class count: 38111 Finalizable size: 225KB Soft-reachable size: 2.46MB Weak-reachable size: 38.2KB Reachable only from disposer tree: 0 ======== INSTANCES OF EACH NOMINATED CLASS ======== Nominated classes: --> [7.79M/525MB] byte[] --> [7.34M/359MB] org.jdom.Attribute --> [5.24M/335MB] org.jdom.Element --> [5.24M/209MB] org.jdom.ContentList --> [7.78M/171MB] java.lang.String --> [5.24M/167MB] org.jdom.AttributeList --> [5.24M/121MB] org.jdom.Attribute[] --> [277/22.1KB] java.nio.DirectByteBuffer CLASS: byte[] (7744064 objects) Ignored 298 too-deep objects Root 1: [7.35M/ 94%/ 500MB] 1.98GB 1 ROOT: Java Frame: com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks(ActionManagerImpl.kt:1164) [7.35M/ 94%/ 500MB] 1.98GB 1 (root): com.intellij.openapi.project.impl.ProjectImpl [13.7K/ 0%/ 302MB] 347MB 1 +-serviceParentDisposable: com.intellij.openapi.util.Disposer$2 [ 85/ 0%/ 300MB] 342MB 1 | (disposer-tree): com.jetbrains.rdserver.execution.BackendRunManager [ 12/ 0%/ 300MB] 300MB 1 | workspaceSchemeManagerProvider: com.intellij.configurationStore.SchemeManagerIprProvider [ 12/ 0%/ 300MB] 300MB 1 | nameToData: java.util.LinkedHashMap [ 6/ 0%/ 300MB] 300MB 1 | head: java.util.LinkedHashMap$Entry [ 1/ 0%/ 300MB] 300MB 1 * | value: byte[] [7.34M/ 94%/ 198MB] 1.64GB 1 \-componentStoreValue: com.intellij.util.concurrency.SynchronizedClearableLazy [7.34M/ 94%/ 198MB] 1.64GB 1 computedValue: java.util.concurrent.atomic.AtomicReference [7.34M/ 94%/ 198MB] 1.64GB 1 value: com.intellij.configurationScript.providers.MyProjectStore [7.34M/ 94%/ 198MB] 1.64GB 1 storageManager: com.intellij.configurationStore.ProjectStateStorageManager [7.34M/ 94%/ 198MB] 1.64GB 1 storages: java.util.HashMap [7.34M/ 94%/ 198MB] 1.64GB 1 table: java.util.HashMap$Node[] [7.34M/ 94%/ 198MB] 1.64GB 24 []: java.util.HashMap$Node [7.34M/ 94%/ 198MB] 1.64GB 16 value: com.intellij.configurationStore.StateStorageManagerImpl$TrackedFileStorage [7.34M/ 94%/ 198MB] 1.64GB 6 storageDataRef: java.util.concurrent.atomic.AtomicReference [7.34M/ 94%/ 198MB] 1.64GB 6 value: com.intellij.configurationStore.StateMap [7.34M/ 94%/ 198MB] 1.64GB 6 states: java.util.concurrent.atomic.AtomicReferenceArray [7.34M/ 94%/ 198MB] 1.64GB 6 array: java.lang.Object[] [7.34M/ 94%/ 198MB] 1.64GB 32 []: org.jdom.Element [7.34M/ 94%/ 198MB] 1.64GB 31 content: org.jdom.ContentList [7.34M/ 94%/ 198MB] 1.64GB 31 elementData: org.jdom.Content[] [7.34M/ 94%/ 198MB] 1.64GB 58 []: org.jdom.Element [7.34M/ 94%/ 198MB] 1.64GB 28 content: org.jdom.ContentList [7.34M/ 94%/ 198MB] 1.64GB 28 elementData: org.jdom.Content[] [7.34M/ 94%/ 198MB] 1.59GB 5242989 []: org.jdom.Element [7.34M/ 94%/ 198MB] 1.05GB 5242979 attributes: org.jdom.AttributeList [7.34M/ 94%/ 198MB] 885MB 5242979 attributeData: org.jdom.Attribute[] [7.34M/ 94%/ 198MB] 763MB 7340236 []: org.jdom.Attribute [7.34M/ 94%/ 198MB] 381MB 7340236 value: java.lang.String [7.34M/ 94%/ 198MB] 205MB 7340236 * value: byte[] Root 2: [92.3K/ 1%/4.12MB] 10.6MB 1 ROOT: Static field: com.intellij.openapi.actionSystem.impl.actionholder.ActionRefKt.manager$delegate [92.3K/ 1%/4.12MB] 10.6MB 1 (root): kotlin.SynchronizedLazyImpl [92.3K/ 1%/4.12MB] 10.6MB 1 _value: com.jetbrains.rdserver.ui.actionPopupMenu.BackendActionManager [92.2K/ 1%/4.11MB] 10.5MB 1 actionPostInitRegistrar: com.intellij.openapi.actionSystem.impl.PostInitActionRegistrar [91.7K/ 1%/4.09MB] 9.99MB 1 idToAction: java.util.concurrent.ConcurrentHashMap [91.7K/ 1%/4.09MB] 9.99MB 1 table: java.util.concurrent.ConcurrentHashMap$Node[] [91.7K/ 1%/4.09MB] 9.17MB 1689 []: java.util.concurrent.ConcurrentHashMap$Node [84.8K/ 1%/3.79MB] 8.24MB 1299 val: com.intellij.openapi.actionSystem.ActionStub [83.3K/ 1%/3.69MB] 7.87MB 60 templatePresentation: com.intellij.openapi.actionSystem.impl.ActionManagerImpl$$Lambda+0x0000000800704258 [83.3K/ 1%/3.69MB] 7.87MB 60 arg$1: com.intellij.openapi.actionSystem.impl.ActionManagerImpl$registerPluginActions$bundleSupplier$1 [83.3K/ 1%/3.69MB] 7.86MB 60 $bundle: kotlin.jvm.internal.Ref$ObjectRef [83.3K/ 1%/3.69MB] 7.86MB 60 element: com.intellij.IntelliJResourceBundle [83.3K/ 1%/3.69MB] 7.86MB 60 lookup: java.util.HashMap [83.3K/ 1%/3.69MB] 7.86MB 60 table: java.util.HashMap$Node[] [83.3K/ 1%/3.69MB] 7.32MB 30667 []: java.util.HashMap$Node [30.6K/ 0%/1.45MB] 2.23MB 30667 key: java.lang.String [30.6K/ 0%/1.45MB] 1.49MB 30667 * value: byte[] Report for byte[] created in 1.285 min CLASS: org.jdom.Attribute (7341990 objects) Root 1: [7.34M/ 99%/ 359MB] 1.98GB 1 ROOT: Java Frame: com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks(ActionManagerImpl.kt:1164) [7.34M/ 99%/ 359MB] 1.98GB 1 (root): com.intellij.openapi.project.impl.ProjectImpl [7.34M/ 99%/ 359MB] 1.64GB 1 +-componentStoreValue: com.intellij.util.concurrency.SynchronizedClearableLazy [7.34M/ 99%/ 359MB] 1.64GB 1 | computedValue: java.util.concurrent.atomic.AtomicReference [7.34M/ 99%/ 359MB] 1.64GB 1 | value: com.intellij.configurationScript.providers.MyProjectStore [7.34M/ 99%/ 359MB] 1.64GB 1 | storageManager: com.intellij.configurationStore.ProjectStateStorageManager [7.34M/ 99%/ 359MB] 1.64GB 1 | storages: java.util.HashMap [7.34M/ 99%/ 359MB] 1.64GB 1 | table: java.util.HashMap$Node[] [7.34M/ 99%/ 359MB] 1.64GB 5 | []: java.util.HashMap$Node [7.34M/ 99%/ 359MB] 1.64GB 4 | value: com.intellij.configurationStore.StateStorageManagerImpl$TrackedFileStorage [7.34M/ 99%/ 359MB] 1.64GB 4 | storageDataRef: java.util.concurrent.atomic.AtomicReference [7.34M/ 99%/ 359MB] 1.64GB 4 | value: com.intellij.configurationStore.StateMap [7.34M/ 99%/ 359MB] 1.64GB 4 | states: java.util.concurrent.atomic.AtomicReferenceArray [7.34M/ 99%/ 359MB] 1.64GB 4 | array: java.lang.Object[] [7.34M/ 99%/ 359MB] 1.64GB 29 | []: org.jdom.Element [7.34M/ 99%/ 359MB] 1.64GB 27 | content: org.jdom.ContentList [7.34M/ 99%/ 359MB] 1.64GB 27 | elementData: org.jdom.Content[] [7.34M/ 99%/ 359MB] 1.64GB 83 | []: org.jdom.Element [7.34M/ 99%/ 359MB] 1.64GB 29 | content: org.jdom.ContentList [7.34M/ 99%/ 359MB] 1.64GB 29 | elementData: org.jdom.Content[] [7.34M/ 99%/ 359MB] 1.59GB 5242989 | []: org.jdom.Element [7.34M/ 99%/ 359MB] 1.05GB 5242979 | attributes: org.jdom.AttributeList [7.34M/ 99%/ 359MB] 885MB 5242979 | attributeData: org.jdom.Attribute[] [7.34M/ 99%/ 359MB] 763MB 7340274 * | []: org.jdom.Attribute [ 484/ 0%/23.7KB] 347MB 1 \-serviceParentDisposable: com.intellij.openapi.util.Disposer$2 [ 482/ 0%/23.6KB] 133KB 1 (disposer-tree): com.intellij.tasks.impl.TaskManagerImpl [ 482/ 0%/23.6KB] 127KB 1 myConfig: com.intellij.tasks.impl.TaskManagerImpl$Config [ 482/ 0%/23.6KB] 101KB 1 servers: org.jdom.Element [ 482/ 0%/23.6KB] 101KB 1 parent: org.jdom.Element [ 482/ 0%/23.6KB] 101KB 1 content: org.jdom.ContentList [ 482/ 0%/23.6KB] 101KB 1 elementData: org.jdom.Content[] [ 482/ 0%/23.6KB] 100KB 49 []: org.jdom.Element [ 383/ 0%/18.7KB] 89.3KB 48 content: org.jdom.ContentList [ 383/ 0%/18.7KB] 87.4KB 48 elementData: org.jdom.Content[] [ 383/ 0%/18.7KB] 61.8KB 191 []: org.jdom.Element [ 383/ 0%/18.7KB] 42.0KB 191 attributes: org.jdom.AttributeList [ 383/ 0%/18.7KB] 35.8KB 191 attributeData: org.jdom.Attribute[] [ 383/ 0%/18.7KB] 30.5KB 383 * []: org.jdom.Attribute Root 2: [ 964/ 0%/47.2KB] 13.5MB 1 ROOT: Java Frame: com.intellij.openapi.application.impl.ApplicationImpl.runUnlockingIntendedWrite(ApplicationImpl.java:842) [ 964/ 0%/47.2KB] 13.5MB 1 (root): com.intellij.openapi.application.impl.ApplicationImpl [ 964/ 0%/47.2KB] 10.9MB 1 serviceContainer: com.intellij.platform.instanceContainer.internal.InstanceContainerImpl [ 964/ 0%/47.2KB] 10.9MB 1 _state: com.intellij.platform.instanceContainer.internal.InstanceContainerState [ 964/ 0%/47.2KB] 763KB 1 holders: kotlinx.collections.immutable.implementations.immutableMap.PersistentHashMap [ 964/ 0%/47.2KB] 762KB 1 node: kotlinx.collections.immutable.implementations.immutableMap.TrieNode [ 964/ 0%/47.2KB] 762KB 1 buffer: java.lang.Object[] [ 964/ 0%/47.2KB] 384KB 1 []: kotlinx.collections.immutable.implementations.immutableMap.TrieNode [ 964/ 0%/47.2KB] 384KB 1 buffer: java.lang.Object[] [ 964/ 0%/47.2KB] 380KB 1 []: com.intellij.platform.instanceContainer.internal.StaticInstanceHolder [ 964/ 0%/47.2KB] 380KB 1 _state: com.intellij.configurationStore.ApplicationStoreImpl [ 964/ 0%/47.2KB] 201KB 1 storageManager: com.intellij.configurationStore.ApplicationStateStorageManager [ 964/ 0%/47.2KB] 200KB 1 storages: java.util.HashMap [ 964/ 0%/47.2KB] 200KB 1 table: java.util.HashMap$Node[] [ 964/ 0%/47.2KB] 173KB 14 []: java.util.HashMap$Node [ 644/ 0%/31.5KB] 96.1KB 5 next: java.util.HashMap$Node [ 640/ 0%/31.3KB] 92.0KB 3 value: com.intellij.configurationStore.StateStorageManagerImpl$TrackedFileStorage [ 640/ 0%/31.3KB] 91.1KB 3 storageDataRef: java.util.concurrent.atomic.AtomicReference [ 640/ 0%/31.3KB] 91.1KB 3 value: com.intellij.configurationStore.StateMap [ 640/ 0%/31.3KB] 90.8KB 3 states: java.util.concurrent.atomic.AtomicReferenceArray [ 640/ 0%/31.3KB] 90.7KB 3 array: java.lang.Object[] [ 640/ 0%/31.3KB] 90.7KB 3 []: org.jdom.Element [ 636/ 0%/31.1KB] 89.9KB 3 content: org.jdom.ContentList [ 636/ 0%/31.1KB] 89.8KB 3 elementData: org.jdom.Content[] [ 636/ 0%/31.1KB] 88.3KB 120 []: org.jdom.Element [ 589/ 0%/28.8KB] 66.9KB 120 attributes: org.jdom.AttributeList [ 589/ 0%/28.8KB] 63.1KB 120 attributeData: org.jdom.Attribute[] [ 589/ 0%/28.8KB] 56.9KB 589 * []: org.jdom.Attribute Report for org.jdom.Attribute created in 58.31 s CLASS: org.jdom.Element (5243970 objects) Root 1: [5.24M/ 99%/ 335MB] 1.98GB 1 ROOT: Java Frame: com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks(ActionManagerImpl.kt:1164) [5.24M/ 99%/ 335MB] 1.98GB 1 (root): com.intellij.openapi.project.impl.ProjectImpl [5.24M/ 99%/ 335MB] 1.64GB 1 +-componentStoreValue: com.intellij.util.concurrency.SynchronizedClearableLazy [5.24M/ 99%/ 335MB] 1.64GB 1 | computedValue: java.util.concurrent.atomic.AtomicReference [5.24M/ 99%/ 335MB] 1.64GB 1 | value: com.intellij.configurationScript.providers.MyProjectStore [5.24M/ 99%/ 335MB] 1.64GB 1 | storageManager: com.intellij.configurationStore.ProjectStateStorageManager [5.24M/ 99%/ 335MB] 1.64GB 1 | storages: java.util.HashMap [5.24M/ 99%/ 335MB] 1.64GB 1 | table: java.util.HashMap$Node[] [5.24M/ 99%/ 335MB] 1.64GB 5 | []: java.util.HashMap$Node [5.24M/ 99%/ 335MB] 1.64GB 4 | value: com.intellij.configurationStore.StateStorageManagerImpl$TrackedFileStorage [5.24M/ 99%/ 335MB] 1.64GB 4 | storageDataRef: java.util.concurrent.atomic.AtomicReference [5.24M/ 99%/ 335MB] 1.64GB 4 | value: com.intellij.configurationStore.StateMap [5.24M/ 99%/ 335MB] 1.64GB 4 | states: java.util.concurrent.atomic.AtomicReferenceArray [5.24M/ 99%/ 335MB] 1.64GB 4 | array: java.lang.Object[] [5.24M/ 99%/ 335MB] 1.64GB 34 | []: org.jdom.Element [5.24M/ 99%/ 335MB] 1.64GB 27 | content: org.jdom.ContentList [5.24M/ 99%/ 335MB] 1.64GB 27 | elementData: org.jdom.Content[] [5.24M/ 99%/ 335MB] 1.64GB 84 | []: org.jdom.Element [5.24M/ 99%/ 335MB] 1.64GB 30 | content: org.jdom.ContentList [5.24M/ 99%/ 335MB] 1.64GB 30 | elementData: org.jdom.Content[] [5.24M/ 99%/ 335MB] 1.59GB 5242991 | []: org.jdom.Element [ 137/ 0%/8.76KB] 34.4KB 22 | content: org.jdom.ContentList [ 137/ 0%/8.76KB] 33.5KB 22 | elementData: org.jdom.Content[] [ 137/ 0%/8.76KB] 32.4KB 42 | []: org.jdom.Element [ 95/ 0%/6.08KB] 22.2KB 14 | content: org.jdom.ContentList [ 95/ 0%/6.08KB] 21.7KB 14 | elementData: org.jdom.Content[] [ 95/ 0%/6.08KB] 21.1KB 22 | []: org.jdom.Element [ 73/ 0%/4.67KB] 15.5KB 7 | content: org.jdom.ContentList [ 73/ 0%/4.67KB] 15.2KB 7 | elementData: org.jdom.Content[] [ 73/ 0%/4.67KB] 14.9KB 7 | []: org.jdom.Element [ 66/ 0%/4.22KB] 14.4KB 6 | content: org.jdom.ContentList [ 66/ 0%/4.22KB] 14.2KB 6 | elementData: org.jdom.Content[] [ 66/ 0%/4.22KB] 13.9KB 12 | []: org.jdom.Element [ 54/ 0%/3.45KB] 10.4KB 6 | content: org.jdom.ContentList [ 54/ 0%/3.45KB] 10.2KB 6 | elementData: org.jdom.Content[] [ 54/ 0%/3.45KB] 9.96KB 6 | []: org.jdom.Element [ 48/ 0%/3.07KB] 9.57KB 6 | content: org.jdom.ContentList [ 48/ 0%/3.07KB] 9.33KB 6 | elementData: org.jdom.Content[] [ 48/ 0%/3.07KB] 9.07KB 12 | []: org.jdom.Element [ 36/ 0%/ 2.3KB] 7.05KB 12 | content: org.jdom.ContentList [ 36/ 0%/ 2.3KB] 6.57KB 12 | elementData: org.jdom.Content[] [ 36/ 0%/ 2.3KB] 6.04KB 12 | []: org.jdom.Element [ 24/ 0%/1.53KB] 5.28KB 12 | content: org.jdom.ContentList [ 24/ 0%/1.53KB] 4.8KB 12 | elementData: org.jdom.Content[] [ 24/ 0%/1.53KB] 4.27KB 12 | []: org.jdom.Element [ 12/ 0%/ 768B] 3.5KB 12 | content: org.jdom.ContentList [ 12/ 0%/ 768B] 3.02KB 12 | elementData: org.jdom.Content[] [ 12/ 0%/ 768B] 2.49KB 12 * | []: org.jdom.Element [ 343/ 0%/21.9KB] 347MB 1 \-serviceParentDisposable: com.intellij.openapi.util.Disposer$2 [ 338/ 0%/21.6KB] 133KB 1 (disposer-tree): com.intellij.tasks.impl.TaskManagerImpl [ 338/ 0%/21.6KB] 127KB 1 myConfig: com.intellij.tasks.impl.TaskManagerImpl$Config [ 338/ 0%/21.6KB] 101KB 1 servers: org.jdom.Element [ 337/ 0%/21.5KB] 101KB 1 parent: org.jdom.Element [ 336/ 0%/21.5KB] 101KB 1 content: org.jdom.ContentList [ 336/ 0%/21.5KB] 101KB 1 elementData: org.jdom.Content[] [ 336/ 0%/21.5KB] 100KB 49 []: org.jdom.Element [ 287/ 0%/18.3KB] 89.3KB 48 content: org.jdom.ContentList [ 287/ 0%/18.3KB] 87.4KB 48 elementData: org.jdom.Content[] [ 287/ 0%/18.3KB] 84.1KB 287 * []: org.jdom.Element Root 2: [ 375/ 0%/24.0KB] 13.5MB 1 ROOT: Java Frame: com.intellij.openapi.application.impl.ApplicationImpl.runUnlockingIntendedWrite(ApplicationImpl.java:842) [ 375/ 0%/24.0KB] 13.5MB 1 (root): com.intellij.openapi.application.impl.ApplicationImpl [ 375/ 0%/24.0KB] 10.9MB 1 serviceContainer: com.intellij.platform.instanceContainer.internal.InstanceContainerImpl [ 375/ 0%/24.0KB] 10.9MB 1 _state: com.intellij.platform.instanceContainer.internal.InstanceContainerState [ 375/ 0%/24.0KB] 763KB 1 holders: kotlinx.collections.immutable.implementations.immutableMap.PersistentHashMap [ 375/ 0%/24.0KB] 762KB 1 node: kotlinx.collections.immutable.implementations.immutableMap.TrieNode [ 375/ 0%/24.0KB] 762KB 1 buffer: java.lang.Object[] [ 375/ 0%/24.0KB] 388KB 2 []: kotlinx.collections.immutable.implementations.immutableMap.TrieNode [ 375/ 0%/24.0KB] 388KB 2 buffer: java.lang.Object[] [ 374/ 0%/23.9KB] 380KB 1 []: com.intellij.platform.instanceContainer.internal.StaticInstanceHolder [ 374/ 0%/23.9KB] 380KB 1 _state: com.intellij.configurationStore.ApplicationStoreImpl [ 374/ 0%/23.9KB] 201KB 1 storageManager: com.intellij.configurationStore.ApplicationStateStorageManager [ 374/ 0%/23.9KB] 200KB 1 storages: java.util.HashMap [ 374/ 0%/23.9KB] 200KB 1 table: java.util.HashMap$Node[] [ 374/ 0%/23.9KB] 181KB 19 []: java.util.HashMap$Node [ 217/ 0%/13.8KB] 80.7KB 18 value: com.intellij.configurationStore.StateStorageManagerImpl$TrackedFileStorage [ 217/ 0%/13.8KB] 75.7KB 18 storageDataRef: java.util.concurrent.atomic.AtomicReference [ 217/ 0%/13.8KB] 75.4KB 18 value: com.intellij.configurationStore.StateMap [ 217/ 0%/13.8KB] 73.1KB 18 states: java.util.concurrent.atomic.AtomicReferenceArray [ 217/ 0%/13.8KB] 72.9KB 18 array: java.lang.Object[] [ 217/ 0%/13.8KB] 72.4KB 26 []: org.jdom.Element [ 191/ 0%/12.2KB] 63.2KB 21 content: org.jdom.ContentList [ 191/ 0%/12.2KB] 62.3KB 21 elementData: org.jdom.Content[] [ 191/ 0%/12.2KB] 61.0KB 86 []: org.jdom.Element [ 105/ 0%/6.72KB] 40.6KB 50 content: org.jdom.ContentList [ 105/ 0%/6.72KB] 38.6KB 50 elementData: org.jdom.Content[] [ 105/ 0%/6.72KB] 36.4KB 90 []: org.jdom.Element [ 15/ 0%/ 960B] 5.62KB 2 content: org.jdom.ContentList [ 15/ 0%/ 960B] 5.54KB 2 elementData: org.jdom.Content[] [ 15/ 0%/ 960B] 5.37KB 13 []: org.jdom.Element [ 2/ 0%/ 128B] 612B 1 content: org.jdom.ContentList [ 2/ 0%/ 128B] 572B 1 elementData: org.jdom.Content[] [ 2/ 0%/ 128B] 528B 1 []: org.jdom.Element [ 1/ 0%/ 64B] 464B 1 content: org.jdom.ContentList [ 1/ 0%/ 64B] 424B 1 elementData: org.jdom.Content[] [ 1/ 0%/ 64B] 380B 1 * []: org.jdom.Element Report for org.jdom.Element created in 5.738 min CLASS: org.jdom.ContentList (5244037 objects) Root 1: [5.24M/ 99%/ 209MB] 1.98GB 1 ROOT: Java Frame: com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks(ActionManagerImpl.kt:1164) [5.24M/ 99%/ 209MB] 1.98GB 1 (root): com.intellij.openapi.project.impl.ProjectImpl [5.24M/ 99%/ 209MB] 1.64GB 1 +-componentStoreValue: com.intellij.util.concurrency.SynchronizedClearableLazy [5.24M/ 99%/ 209MB] 1.64GB 1 | computedValue: java.util.concurrent.atomic.AtomicReference [5.24M/ 99%/ 209MB] 1.64GB 1 | value: com.intellij.configurationScript.providers.MyProjectStore [5.24M/ 99%/ 209MB] 1.64GB 1 | storageManager: com.intellij.configurationStore.ProjectStateStorageManager [5.24M/ 99%/ 209MB] 1.64GB 1 | storages: java.util.HashMap [5.24M/ 99%/ 209MB] 1.64GB 1 | table: java.util.HashMap$Node[] [5.24M/ 99%/ 209MB] 1.64GB 5 | []: java.util.HashMap$Node [5.24M/ 99%/ 209MB] 1.64GB 4 | value: com.intellij.configurationStore.StateStorageManagerImpl$TrackedFileStorage [5.24M/ 99%/ 209MB] 1.64GB 4 | storageDataRef: java.util.concurrent.atomic.AtomicReference [5.24M/ 99%/ 209MB] 1.64GB 4 | value: com.intellij.configurationStore.StateMap [5.24M/ 99%/ 209MB] 1.64GB 4 | states: java.util.concurrent.atomic.AtomicReferenceArray [5.24M/ 99%/ 209MB] 1.64GB 4 | array: java.lang.Object[] [5.24M/ 99%/ 209MB] 1.64GB 34 | []: org.jdom.Element [5.24M/ 99%/ 209MB] 1.64GB 34 | content: org.jdom.ContentList [5.24M/ 99%/ 209MB] 1.64GB 27 | elementData: org.jdom.Content[] [5.24M/ 99%/ 209MB] 1.64GB 84 | []: org.jdom.Element [5.24M/ 99%/ 209MB] 1.64GB 84 | content: org.jdom.ContentList [5.24M/ 99%/ 209MB] 1.64GB 30 | elementData: org.jdom.Content[] [5.24M/ 99%/ 209MB] 1.59GB 5242991 | []: org.jdom.Element [5.24M/ 99%/ 209MB] 209MB 5242991 | content: org.jdom.ContentList [ 137/ 0%/5.48KB] 33.5KB 22 | elementData: org.jdom.Content[] [ 137/ 0%/5.48KB] 32.4KB 42 | []: org.jdom.Element [ 137/ 0%/5.48KB] 23.4KB 42 | content: org.jdom.ContentList [ 95/ 0%/ 3.8KB] 21.7KB 14 | elementData: org.jdom.Content[] [ 95/ 0%/ 3.8KB] 21.1KB 22 | []: org.jdom.Element [ 95/ 0%/ 3.8KB] 16.3KB 22 | content: org.jdom.ContentList [ 73/ 0%/2.92KB] 15.2KB 7 | elementData: org.jdom.Content[] [ 73/ 0%/2.92KB] 14.9KB 7 | []: org.jdom.Element [ 73/ 0%/2.92KB] 14.5KB 7 | content: org.jdom.ContentList [ 66/ 0%/2.64KB] 14.2KB 6 | elementData: org.jdom.Content[] [ 66/ 0%/2.64KB] 13.9KB 12 | []: org.jdom.Element [ 66/ 0%/2.64KB] 10.7KB 12 | content: org.jdom.ContentList [ 54/ 0%/2.16KB] 10.2KB 6 | elementData: org.jdom.Content[] [ 54/ 0%/2.16KB] 9.96KB 6 | []: org.jdom.Element [ 54/ 0%/2.16KB] 9.57KB 6 | content: org.jdom.ContentList [ 48/ 0%/1.92KB] 9.33KB 6 | elementData: org.jdom.Content[] [ 48/ 0%/1.92KB] 9.07KB 12 | []: org.jdom.Element [ 48/ 0%/1.92KB] 7.05KB 12 | content: org.jdom.ContentList [ 36/ 0%/1.44KB] 6.57KB 12 | elementData: org.jdom.Content[] [ 36/ 0%/1.44KB] 6.04KB 12 | []: org.jdom.Element [ 36/ 0%/1.44KB] 5.28KB 12 | content: org.jdom.ContentList [ 24/ 0%/ 960B] 4.8KB 12 | elementData: org.jdom.Content[] [ 24/ 0%/ 960B] 4.27KB 12 | []: org.jdom.Element [ 24/ 0%/ 960B] 3.5KB 12 | content: org.jdom.ContentList [ 12/ 0%/ 480B] 3.02KB 12 | elementData: org.jdom.Content[] [ 12/ 0%/ 480B] 2.49KB 12 | []: org.jdom.Element [ 12/ 0%/ 480B] 480B 12 * | content: org.jdom.ContentList [ 351/ 0%/14.0KB] 347MB 1 \-serviceParentDisposable: com.intellij.openapi.util.Disposer$2 [ 338/ 0%/13.5KB] 133KB 1 +-(disposer-tree): com.intellij.tasks.impl.TaskManagerImpl [ 338/ 0%/13.5KB] 127KB 1 | myConfig: com.intellij.tasks.impl.TaskManagerImpl$Config [ 338/ 0%/13.5KB] 101KB 1 | servers: org.jdom.Element [ 337/ 0%/13.4KB] 101KB 1 | parent: org.jdom.Element [ 337/ 0%/13.4KB] 101KB 1 | content: org.jdom.ContentList [ 336/ 0%/13.4KB] 101KB 1 | elementData: org.jdom.Content[] [ 336/ 0%/13.4KB] 100KB 49 | []: org.jdom.Element [ 336/ 0%/13.4KB] 89.3KB 49 | content: org.jdom.ContentList [ 287/ 0%/11.4KB] 87.4KB 48 | elementData: org.jdom.Content[] [ 287/ 0%/11.4KB] 84.1KB 287 | []: org.jdom.Element [ 287/ 0%/11.4KB] 23.7KB 287 * | content: org.jdom.ContentList [ 8/ 0%/ 320B] 342MB 1 \-(disposer-tree): com.jetbrains.rdserver.execution.BackendRunManager [ 4/ 0%/ 160B] 41.9MB 1 workspaceSchemeManager: com.intellij.configurationStore.schemeManager.SchemeManagerImpl [ 4/ 0%/ 160B] 41.9MB 1 schemeListManager: com.intellij.configurationStore.schemeManager.SchemeListManager [ 4/ 0%/ 160B] 41.9MB 1 schemeListRef: java.util.concurrent.atomic.AtomicReference [ 4/ 0%/ 160B] 41.9MB 1 value: com.intellij.configurationStore.schemeManager.SchemeCollection [ 4/ 0%/ 160B] 41.9MB 1 list: com.intellij.util.containers.LockFreeCopyOnWriteArrayList [ 4/ 0%/ 160B] 41.9MB 1 value: java.lang.Object[] [ 4/ 0%/ 160B] 41.9MB 1 []: com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl [ 4/ 0%/ 160B] 41.9MB 1 _configuration: com.intellij.execution.configurations.UnknownRunConfiguration [ 4/ 0%/ 160B] 41.9MB 1 myStoredElement: org.jdom.ImmutableElement [ 3/ 0%/ 120B] 41.9MB 1 myContent: org.jdom.Content[] [ 3/ 0%/ 120B] 564B 2 []: org.jdom.ImmutableElement [ 2/ 0%/ 80B] 80B 2 * content: org.jdom.ContentList Root 2: [ 385/ 0%/15.4KB] 13.5MB 1 ROOT: Java Frame: com.intellij.openapi.application.impl.ApplicationImpl.runUnlockingIntendedWrite(ApplicationImpl.java:842) [ 385/ 0%/15.4KB] 13.5MB 1 (root): com.intellij.openapi.application.impl.ApplicationImpl [ 385/ 0%/15.4KB] 10.9MB 1 serviceContainer: com.intellij.platform.instanceContainer.internal.InstanceContainerImpl [ 385/ 0%/15.4KB] 10.9MB 1 _state: com.intellij.platform.instanceContainer.internal.InstanceContainerState [ 385/ 0%/15.4KB] 763KB 1 holders: kotlinx.collections.immutable.implementations.immutableMap.PersistentHashMap [ 385/ 0%/15.4KB] 762KB 1 node: kotlinx.collections.immutable.implementations.immutableMap.TrieNode [ 385/ 0%/15.4KB] 762KB 1 buffer: java.lang.Object[] [ 385/ 0%/15.4KB] 388KB 2 []: kotlinx.collections.immutable.implementations.immutableMap.TrieNode [ 385/ 0%/15.4KB] 388KB 2 buffer: java.lang.Object[]

20:18:02.344 [http-nio-8080-exec-14] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log,175] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception org.springframework.web.util.pattern.PatternParseException: No more pattern data allowed after {*...} or ** pattern element at org.springframework.web.util.pattern.InternalPathPatternParser.peekDoubleWildcard(InternalPathPatternParser.java:250) at org.springframework.web.util.pattern.InternalPathPatternParser.parse(InternalPathPatternParser.java:113) at org.springframework.web.util.pattern.PathPatternParser.parse(PathPatternParser.java:129) at org.springframework.web.servlet.handler.PathPatternMatchableHandlerMapping.lambda$match$0(PathPatternMatchableHandlerMapping.java:64) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1740) at org.springframework.web.servlet.handler.PathPatternMatchableHandlerMapping.match(PathPatternMatchableHandlerMapping.java:62) at org.springframework.web.servlet.handler.HandlerMappingIntrospector$LookupPathMatchableHandlerMapping.match(HandlerMappingIntrospector.java:548) at org.springframework.security.web.servlet.util.matcher.MvcRequestMatcher.matcher(MvcRequestMatcher.java:95) at org.springframework.security.config.annotation.web.AbstractRequestMatcherRegistry$DispatcherServletDelegatingRequestMatcher.matcher(AbstractRequestMatcherRegistry.java:563) at org.springframework.security.config.annotation.web.AbstractRequestMatcherRegistry$DeferredRequestMatcher.matcher(AbstractRequestMatcherRegistry.java:481) at org.springframework.security.web.access.intercept.RequestMatcherDelegatingAuthorizationManager.check(RequestMatcherDelegatingAuthorizationManager.java:80) at org.springframework.security.web.access.intercept.RequestMatcherDelegatingAuthorizationManager.check(RequestMatcherDelegatingAuthorizationManager.java:49) at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(Authoriz

最新推荐

recommend-type

AutomatemanagingofSTM32CubeMX+PlatformIOprojects.zip

AutomatemanagingofSTM32CubeMX+PlatformIOprojects.zip
recommend-type

xapp1276-vcxo_中英文对照版_2025年.pdf

xapp1276-vcxo_中英文对照版_2025年
recommend-type

wp511-risk-mgmt_中英文对照版_2025年.pdf

wp511-risk-mgmt_中英文对照版_2025年
recommend-type

bls-wasm:Node.js下WebAssembly实现的BLS签名技术

### 知识点说明 #### 标题解析 - **WebAssembly**: 是一种新的代码执行格式,旨在提供一种在现代浏览器和服务器上都能运行的安全、快速的代码执行方式。WebAssembly最初的目标是让网页可以运行高性能的应用程序,比如游戏或视频编辑工具,但随着技术的发展,其应用场景已经扩展到服务器端。Node.js通过引入WebAssembly支持,使得可以在其环境中利用WebAssembly的能力执行高度优化的代码。 - **Node.js**: 是一个基于Chrome V8引擎的JavaScript运行环境,它执行JavaScript代码不需要浏览器支持。Node.js被设计为能够构建快速、可扩展的网络应用程序,尤其擅长处理大量并发连接的场景。 - **BLS签名**:BLS(Boneh-Lynn-Shacham)签名是一种基于密码学的签名方案。它在安全性、效率和功能上优于传统的ECDSA和RSA签名算法。BLS签名特别适合于区块链等需要快速验证大量签名的场景。 #### 描述解析 - **密钥和签名模型**: 描述了BLS签名方案中的基本要素:`Fr:SecretKey` 表示秘密密钥,而 `G2:PublicKey` 表示公钥。G1用于表示签名。在密码学中,密钥和签名的生成、使用和管理是确保系统安全的基础。 - **以太坊2.0兼容性**: 提到如果需要与以太坊2.0兼容的签名/验证,需要参考某些文档或指南。这暗示了`bls-wasm`库在区块链领域的重要性,特别是针对以太坊这样的平台,其正在向2.0版本升级,而新的版本将会使用BLS签名来改进网络的安全性和性能。 #### 使用指南 - **Node.js使用**: 通过`require('bls-wasm')`语句引入模块,展示了如何在Node.js环境中集成`bls-wasm`模块。 - **浏览器使用**: 对于在浏览器中使用,需要引入`bls.js`,并且通过`require('bls-wasm/browser')`的方式引入。这反映了WebAssembly模块的跨平台特点,能够适应不同的运行环境。 - **React使用**: 通过类似的方式`const bls = require('bls-wasm/browser')`说明了在React项目中如何集成`bls-wasm`。 - **版本兼容性**: 提到v0.4.2版本破坏了入口点的向后兼容性,意味着从这个版本开始,库的API可能发生了变更,需要开发者注意更新。 #### 执照信息 - **修改了新的执照**: 说明了关于软件许可证的新变化,暗示了库的许可证可能由之前的版本有所更新,需要用户关注和遵守新的许可证条款。 #### 压缩包文件信息 - **bls-wasm-master**: 由于提供了压缩包文件的名称列表,暗示了一个名为`bls-wasm`的项目,可能包含源代码、编译后的文件、文档等。 ### 知识点的深入拓展 #### WebAssembly在Node.js中的应用 WebAssembly在Node.js中的主要优势在于性能的提升,特别是在处理CPU密集型任务时。WebAssembly模块可以运行C/C++、Rust等语言编写的代码,并且这些代码在WebAssembly的沙盒环境中执行得非常快。 #### BLS签名在区块链中的作用 区块链技术依赖于密码学来确保交易的安全性和验证性。BLS签名因其在密钥长度、签名长度、签名速度以及多签性能等方面的优点,非常适合被用于区块链网络。它允许验证者更快地验证交易,并提高了区块链的处理能力。 #### Node.js环境下的安全实践 在Node.js环境中使用BLS签名或任何加密算法时,应当遵循安全实践,例如确保密钥的安全管理,避免在不安全的通道中传输密钥,以及定期更新和轮换密钥等。 #### 跨平台兼容性的重要性 对于WebAssembly模块来说,能够在不同的环境(如Node.js、浏览器、React应用等)中无缝工作是至关重要的。开发者需要关注不同平台间的API差异和兼容性问题。 #### 软件许可证的遵守 软件许可证规定了开发者如何使用该软件,以及他们可以对软件进行哪些修改和分发。遵循许可证的规定不仅可以避免法律风险,还可以确保代码的使用和传播不会侵犯原作者的权益。 综上所述,`bls-wasm`模块作为一个在WebAssembly环境下运行的BLS签名工具,为Node.js和Web开发者提供了强大的密码学能力,特别是对于希望支持以太坊2.0等区块链技术的项目。开发者在使用这类工具时,需要关注性能、兼容性、安全性和许可证等多方面的要求。
recommend-type

提升Linux终端使用效率的实用指南

### 提升 Linux 终端使用效率的实用指南 #### 1. i3wm 窗口管理基础操作 在 i3wm 中,创建新的窗口块(tiles)就等同于打开应用程序,因为所有应用程序都以窗口块的形式呈现在窗口管理器的网格中。 - **创建窗口块**: - 打开终端:使用 `win + enter`。 - 打开其他应用程序:按下 `win + d`,屏幕左上角会弹出一个小对话框,输入应用程序名称,对话框会显示自动补全状态,当显示目标程序时,按下“打开”,应用程序将以窗口块形式打开。 - **窗口块布局调整**: - 打开更多应用程序会在工作区自动创建更多窗口块,并在网格中分
recommend-type

现有以下数据: String[] keyAry: [{"fields":[{"name":"类型"}, {"name":"中问题", "width":"400px"}, {"name":"小问题", "width":"400px"}]}] String[] value: [{"fieldvalues":[{"value":"人员","row":0,"col":0},{"value":"1","row":0,"col":1},{"value":"1","row":0,"col":2}]},{"fieldvalues":[{"value":"设施","row":1,"col":0},{"value":"2","row":1,"col":1},{"value":"2","row":1,"col":2}]}] 请使用java语言将以上数据转化为word的表格,具体格式如下: 类型 中问题 小问题 人员 1 1 设施 2 2 其中,表格第一行是keyAry数组的name属性,value数组中每个fieldvalues属性作为一行

<think> 我们使用Apache POI库来操作Word文档生成表格。 步骤: 1. 创建文档对象,并创建一个表格。 2. 首先,我们创建表头行(第一行),遍历keyAry数组,取出每个元素的name属性作为表头单元格的内容。 3. 然后,遍历value数组,每个元素代表一行数据。每个元素有一个fieldvalues数组,这个数组中的每个元素对应一个单元格。 4. 注意:keyAry数组的长度应该与fieldvalues数组的长度一致,因为它们分别代表列名和每列的值。 假设数据结构如下: keyAry: 数组,每个元素是一个对象,对象有name属性(表头名称) v
recommend-type

2000年代初的粉丝创神奇宝贝网站回顾

标题和描述中提到的“jps1:杰西(Jesse)基于粉丝的终极口袋妖怪网站(2000-2001)”反映了以下几个重要知识点: 1. 网站建设与维护的早期阶段:从2000到2001年的时间段中,互联网技术正处于快速发展时期,而杰西(Jesse)创建的这个口袋妖怪主题网站,可以被视作个人站长时代的早期代表作。这代表了早期网络用户利用有限资源进行个人兴趣爱好的分享和推广。 2. 基于粉丝的互动平台:这个网站明确指出是基于粉丝而创建的,这表明了网络社区中粉丝文化的存在和影响力。在那个时期,围绕特定兴趣(如口袋妖怪)形成的粉丝群体,通过这些网站交流信息、分享资源,这种基于共同兴趣建立的社区模式对后来的社交媒体和粉丝经济有着深远影响。 3. 个人网站的存档意义:杰西(Jesse)在描述中提到了出于存档目的而发布,这说明了这个网站对于网络历史保存的重要性。随着互联网内容的快速更迭,个人网站往往由于服务器迁移、技术更新等原因而丢失,因此存档个人网站是对互联网文化遗产的一种保护。 关于标签“JavaScript”,它指向了一个重要的知识点: 4. JavaScript在网络技术中的作用:标签“JavaScript”点出了该网站使用了JavaScript技术。作为早期的动态网页脚本语言,JavaScript在提高用户交互体验、网页特效实现等方面发挥了关键作用。尽管该网站发布的年份较早,但极有可能包含了一些基础的JavaScript代码,用于实现动态效果和基本的客户端交互。 至于“压缩包子文件的文件名称列表”中的“jps1-gh-pages”,它暗示了以下知识点: 5. GitHub Pages的使用:GitHub Pages是GitHub提供的一项服务,允许用户将网站内容部署到一个独立的域名下,通过“jps1-gh-pages”文件名我们可以推测,这个口袋妖怪网站可能是被部署在GitHub Pages上的。这表明了即使在早期,个人站长已经开始利用现代网络服务来托管和分享他们的项目。 6. 压缩文件的作用:文件名称中的“压缩”二字意味着该网站的文件内容可能是经过压缩处理的,这可能是为了便于存储和传输。在互联网早期,由于带宽和存储空间的限制,压缩文件是一种常见的数据管理手段。 总结以上知识点,可以归纳为: - 网站建设与维护的早期案例,以及个人站长时代的特点。 - 基于粉丝文化的网络社区,及其对后来社交媒体的影响。 - 个人网站的存档价值和对互联网文化遗产的贡献。 - JavaScript的早期应用以及它在改善用户交互体验方面的重要性。 - GitHub Pages的使用案例,以及压缩技术在网络数据管理中的应用。 从这些知识点可以看出,即便是早期的个人网站项目,也蕴含了丰富的技术和文化内涵,为理解互联网的发展和应用提供了重要的视角。
recommend-type

Linux终端实用工具与技巧

# Linux 终端实用工具与技巧 ## 1. gnuplot 绘图与导出 ### 1.1 绘制方程图形 任何方程都可以用特定方式绘制图形。例如,一个斜率为 5、y 轴截距为 3 的直线方程,可使用以下命令生成图形: ```bash plot 5*x + 3 ``` ### 1.2 导出图形为图像文件 虽然能在终端显示图表,但多数情况下,我们希望将图表导出为图像,用于报告或演示。可按以下步骤将 gnuplot 设置为导出图像文件: 1. 切换到 png 模式: ```bash set terminal png ``` 2. 指定图像文件的输出位置,否则屏幕将显示未处理的原始 png 数据:
recommend-type

华为310散热

<think> 嗯,用户想了解华为昇腾310处理器的散热解决方案,我需要从提供的引用材料中提取相关信息。首先查看引用[1],里面提到Atlas 500智能小站使用了TEC半导体制冷技术,这项技术具有无风扇、低功耗和高可靠性的特点。虽然这是Atlas 500的设备,但考虑到昇腾310芯片的应用场景,很可能采用了相似的散热方案。 再看引用[2]中关于CloudEngine 16800交换机的散热描述,这里提到了两项关键技术:碳纳米导热垫和VC相变散热。虽然这是交换机产品,但散热原理应该可以迁移到AI处理器场景。特别是VC相变散热技术的高效热传导特性,对昇腾310这样的高密度芯片应该很适用。 引
recommend-type

VB提取EXE/DLL文件中所有图标的教程与源码

在深入探讨这个知识点之前,我们需要对VB(Visual Basic)有所了解。VB是一种广泛使用的编程语言,最初由微软公司开发,它属于事件驱动编程语言的一部分。随着技术的发展,VB已经演变出多个版本,其中包括较为人熟知的VB6和VB.NET。VB在开发Windows应用程序方面有着广泛的应用,因为其简洁的语法和可视化的开发环境使得编程变得相对容易。 【知识点】: 1. VB源码解析: VB源码通常包含对某个特定任务的指令集。在这个案例中,源码是用于从可执行的EXE文件和动态链接库(DLL)文件中提取ICO图标。这个程序允许用户选择一个快捷方式打开的应用程序(例如桌面上的Word快捷方式),通过解析快捷方式,程序能够找到实际的可执行文件,并从中提取图标资源。 2. 系统相关知识:了解Windows操作系统的工作原理对于这类任务至关重要。Windows操作系统将图标作为资源存储在可执行文件和DLL文件中。资源是二进制文件内的一部分,包含图像、字符串、菜单和其他可加载的元素。使用VB程序能够访问和操作这些资源,允许开发者或用户提取出图标资源。 3. ICO与图标处理:ICO文件是Windows系统中图标图像的文件格式。图标可以有不同的尺寸和颜色深度,通常用于表示文件、文件夹或程序。在VB程序中,提取的图标会被以ICO格式保存,这样可以确保在不同的应用程序中被识别和使用。 4. 图标提取程序的实现:要提取EXE文件中的图标,VB程序需要执行几个关键步骤。首先,程序需要打开目标EXE文件,并读取其内部的资源表。接着,程序要查找资源表中与图标相关的条目。通常,这些图标资源可以通过一个编号或名称被识别。然后,程序将这些图标资源读取出来,并保存为独立的ICO文件。在读取过程中,开发者可能需要使用Windows API(应用程序编程接口)函数来处理各种底层操作,例如打开文件、读取资源和关闭文件等。 5. VB中的用户界面元素:为了实现从EXE文件提取图标的功能,VB程序需要提供一个用户界面,允许用户选择快捷方式并显示提取出的图标列表。这通常涉及到使用VB中的控件,如列表框(ListBox)或图像框(PictureBox)来显示图标,使用滚动条(Scrollbar)来浏览不同图标,以及统计图标数量的逻辑。 6. 可能的编程实现和挑战:实现这个功能可能会遇到的挑战包括了解如何操作Windows资源,熟悉Windows API,以及处理可能出现的异常情况,例如用户选择的不是有效的可执行文件。程序员需要编写错误处理逻辑来确保程序的稳定性。此外,针对不同的操作系统版本(比如32位与64位),资源读取方式可能有所不同,因此程序可能需要考虑兼容性问题。 7. 关于文件名称"okbase.net"的讨论:虽然在给出的信息中并未提供具体的VB源代码或进一步的说明,文件名称"okbase.net"可能指向一个提供源代码下载、技术讨论或者知识共享的网站。"okbase.net"作为一个资源网站,可能会有各种类型的资源文件,包括我们这里讨论的VB源代码。开发者可以访问这类网站来获取所需的代码、库或其他开发资源。 总体而言,VB从EXE文件提取图标的功能展示了一个有趣且实用的应用,它涉及到了编程、操作系统原理以及图形用户界面的设计。对于那些对Windows编程感兴趣的开发者来说,这是一个很有教育意义的项目。