草庐IT

memory_cache

全部标签

java - Java实现定时刷新Cache

我的用例是对存储在持久性数据库中的数据维护内存缓存。我使用数据来填充UI上的条目列表/映射。在任何给定时间,UI上显示的数据都应尽可能更新(这可以通过缓存的刷新频率来完成)。常规缓存实现与此特定缓存之间的主要区别在于它需要定期批量刷新所有元素,因此与LRU类型的缓存有很大不同。我需要用Java来实现这个实现,如果有任何现有的框架可以用来围绕它们构建这个框架,那就太好了。我探索了GoogleGuava缓存库,但它更适合按条目刷新而不是批量刷新。没有简单的API可以刷新整个缓存。我们将不胜感激任何帮助。此外,如果可以逐步进行刷新,那就太好了,因为刷新整个缓存时出现的唯一限制是,如果缓存的大

java - Tomcat 崩溃 : There is insufficient memory for the Java Runtime Environment to continue

我们正在运行一个用户数量较少的网络应用程序,大约7个,但显示图像的负载很高。最近我们升级到Java6u43和Tomcat6.036,在使用了一段时间(大约一周)后,tomcat服务崩溃了。重新启动后,它可以运行几天,或者只运行几个小时,然后再次崩溃。即使在重新启动服务器后它再次崩溃,我们甚至在Activity10分钟后看到了这种情况。在tomcat的bin文件夹中的hs_err_pid文件中总是有相同的信息。请参阅下面的完整错误消息示例。native内存总是不足,主要Activity线程始终是JavaThread“C2CompilerThread1”,但始终处于不同的方法中。我们在wi

java - Guava 的 Cache<K, Semaphore> 和 weakValues() 是线程安全的吗?

我需要一个按键锁定机制来保护按键绑定(bind)的关键部分。尽管ConcurrentMap对于并发就足够了,我也不希望map累积旧key并无限增长。理想情况下,数据结构最终(或之后立即)释放用于未使用锁的键的内存。我有点想Guava的Cache用weakValues()build会成功的:privatestaticfinalLoadingCacheKEY_MUTEX=CacheBuilder.newBuilder().weakValues().build(newCacheLoader(){@OverridepublicSemaphoreload(Kkey)throwsException

java - Spring Cache - 创建自定义 CacheManager

我正在使用SpringBoot和EhCache开发日历应用程序。我正在尝试缓存以下方法:@Override@Cacheable(value="concerts")publicListgetEvents(StringeventsForUser,DatestartDate,DateendDate)throwsException{returnfetchEventsFromTheServer(eventsForUser,startDate,endDate);}挑战是我想操纵返回的缓存结果。例如,检查是否有给定日期但不同用户的缓存,然后返回它(只要两个用户都满足特定条件)。所以,在返回结果之前我

Java 失败并显示 "Could not reserve enough space for code cache"

我有以下问题:$java-jarprogram.jarErroroccurredduringinitializationofVMCouldnotreserveenoughspaceforcodecache系统看到的内存量似乎足够:$free-mtotalusedfreesharedbufferscachedMem:5959640531800390-/+buffers/cache:2495710Swap:409904099我尝试将堆设置降低到16mb,但没有帮助:$java-Xmx16m-Xms16m-jarprogram.jarErroroccurredduringinitializa

java - "spark.memory.fraction"好像没有作用

在Spark中,当我从一个函数中从HDFS读取一个大约1GB的字符串时,我遇到了java.lang.OutOfMemoryError:Javaheapspace错误。我使用的执行程序内存是6GB。为了增加用户内存,我什至将spark.memory.fraction减少到0.3,但我仍然遇到同样的错误。似乎降低该值没有效果。我正在使用Spark1.6.1并使用Spark1.6核心库进行编译。我在这里做错了什么吗? 最佳答案 请参阅SparkConfSparkExecutorOOM:如何在Spark上设置内存参数一旦应用程序运行,您将看

java - 为什么不推荐使用 org.hibernate.cache.Cache?

不仅如此,org.hibernate.cache.Cache.CacheProvider也被弃用了。如果这些是那么我们应该如何创建我们自己的自定义缓存解决方案?替代方法? 最佳答案 JavaDoc解释一下:Thelegacy(andnowdeprecated)approachtocachingisdefinedbytheCacheProviderandCacheinterfacesaswellastheCacheConcurrencyStrategyinterfacealongwiththevariousimplementation

java - 通过 JDBC 将 DDL 与 SELECT 混合时为 "ERROR: cached plan must not change result type"

我在通过JDBC使用PostgreSQL时遇到了一个有趣的问题(无法在JDBC之外重现),我得到了一个“ERROR:cachedplanmustnotchangeresulttype”重现此问题的最简单方法是使用以下代码:Connectionc=getConnection();c.setAutoCommit(true);Liststatements=Arrays.asList("createtablet(aint)","select*fromt","altertabletaddbint","select*fromt","altertabletaddcint","select*fromt

java - 外部洗牌 : shuffling large amount of data out of memory

我正在寻找一种方法来随机播放不适合内存(大约40GB)的大量数据。我有大约3000万个条目,长度可变,存储在一个大文件中。我知道该文件中每个条目的开始和结束位置。我需要随机播放这些不适合RAM的数据。我想到的唯一解决方案是将包含从1到N的数字的数组打乱,其中N是条目数,与Fisher-Yatesalgorithm然后根据此顺序将条目复制到新文件中。不幸的是,此解决方案涉及大量查找操作,因此会非常慢。是否有更好的解决方案来对均匀分布的大量数据进行洗牌? 最佳答案 首先解决shuffle问题。为此,请为您的条目发明一种哈希算法,该算法会

java.lang.out of memory 错误

我们是cbse12年级的ip学生..我们正面临这个异常,我们不知道如何纠正这个异常。run:Exceptioninthread"ImageFetcher1"java.lang.OutOfMemoryError:Javaheapspaceatjava.awt.image.DataBufferInt.(DataBufferInt.java:41)atjava.awt.image.Raster.createPackedRaster(Raster.java:458)atjava.awt.image.DirectColorModel.createCompatibleWritableRaster(