我最近开始使用R进行数据分析.现在我在排序一个大的查询数据集时遇到了问题(在ASCII模式下约为1 GB,在我的笔记本电脑的二进制模式下的4GB RAM中).使用bigmemory::big.matrix此数据集是一个很好的解决方案,但在gbm()或randomForest()算法中提供这样的矩阵"m" 会导致错误:
cannot coerce class 'structure("big.matrix", package = "bigmemory")' into a data.frame
Run Code Online (Sandbox Code Playgroud)
class(m)输出如下:
[1] "big.matrix"
attr(,"package")
[1] "bigmemory"
Run Code Online (Sandbox Code Playgroud)
有没有办法正确地将big.matrix实例传递给这些算法?
我正在使用带有大内存的ehcache entreprise 2.7.我希望有一个缓存在满时溢出到磁盘并且我希望这个缓存在重新启动时是持久的.
我目前的配置是:
<cache name="dataservice"
eternal="true"
maxEntriesLocalHeap="1"
overflowToOffHeap="true"
maxBytesLocalOffHeap="60M">
<persistence strategy="localRestartable"/>
</cache>
Run Code Online (Sandbox Code Playgroud)
此配置通过重新启动使缓存持久(并且它运行良好)但它似乎没有溢出到磁盘.我真的想使用"localRestartable",因为它的工作方式比旧属性diskPersistent ="true"更好."localRestartable"与属性overflowToDisk ="true"不兼容......
有关如何让我的缓存溢出到磁盘的任何想法?
我刚刚读到 BigMemory如何允许Java系统扩展而不是扩展.
关于BigMemory:
BigMemory使Java应用程序能够即时,轻松地访问大量内存,而不受垃圾收集的限制.
BigMemory是纯Java,提供进程内堆外缓存,允许您存储大量数据 - 最接近应用程序的TB级.
这一突破性解决方案通过独立和分布式缓存提高了内存利用率和应用程序性能.
那么我如何对.net做同样的事情,例如进程内,堆外缓存.(注意Asp.net缓存是在垃圾收集堆上)
.net garbage-collection terracotta scalability ehcache-bigmemory
我必须使用EhCache实现缓存。基本要求是,我必须将该缓存的对象保持固定的时间间隔(现在在下面的代码中保持1小时)。因此,我实现了如下代码:
样本域对象:
import lombok.*;
@Getter
@Setter
@ToString
@AllArgsConstructor
public class City implements Serializable {
public String name;
public String country;
public int population;
}
Run Code Online (Sandbox Code Playgroud)
缓存管理器类:
import net.sf.ehcache.*;
public class JsonObjCacheManager {
private static final Logger logger = LoggerFactory.getLogger(JsonObjCacheManager.class);
private CacheManager manager;
private Cache objectCache;
public JsonObjCacheManager(){
manager = CacheManager.create();
objectCache = manager.getCache("jsonDocCache");
if( objectCache == null){
objectCache = new Cache(
new CacheConfiguration("jsonDocCache", 1000)
.memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LRU)
.eternal(false)
.timeToLiveSeconds(60 * 60)
.timeToIdleSeconds(0)
.diskExpiryThreadIntervalSeconds(0)
.persistence(new PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.LOCALTEMPSWAP)));
objectCache.disableDynamicFeatures();
manager.addCache(objectCache);
}
}
public List<String> …Run Code Online (Sandbox Code Playgroud) 我在 Ehcache 中使用 maxElementsInMemory,最近我知道从 2.5 开始它已被弃用,并且使用了 maxEntriesLocalHeap。
maxEntriesLocalHeap 中的任何性能增强或仅更改名称。
ehcache ×3
java ×2
.net ×1
caching ×1
dataframe ×1
jsr107 ×1
r ×1
r-bigmemory ×1
ranking ×1
scalability ×1
terracotta ×1