标签: diskcache

凌空出现内存错误,奇怪的分配尝试

有时随机Volley在启动时崩溃我的应用程序,它在应用程序类中崩溃,用户无法再次打开应用程序,直到他们进入设置并清除应用程序数据

java.lang.OutOfMemoryError
at com.android.volley.toolbox.DiskBasedCache.streamToBytes(DiskBasedCache.java:316)
at com.android.volley.toolbox.DiskBasedCache.readString(DiskBasedCache.java:526)
at com.android.volley.toolbox.DiskBasedCache.readStringStringMap(DiskBasedCache.java:549)
at com.android.volley.toolbox.DiskBasedCache$CacheHeader.readHeader(DiskBasedCache.java:392)
at com.android.volley.toolbox.DiskBasedCache.initialize(DiskBasedCache.java:155)
at com.android.volley.CacheDispatcher.run(CacheDispatcher.java:84)
Run Code Online (Sandbox Code Playgroud)

"diskbasedbache"尝试分配超过1 GB的内存,没有明显的原因

我怎么能让这件事不发生?这似乎是Volley的问题,或者可能是基于自定义磁盘的缓存的问题,但我没有立即看到(从堆栈跟踪)如何"清除"此缓存或执行条件检查或处理此异常

洞察力赞赏

android out-of-memory android-volley diskcache

17
推荐指数
1
解决办法
1万
查看次数

如何将bcache设备恢复到规则文件系统

我的笔记本电脑上有一个20 GB的SSD设备,我决定尝试使用bcache.它似乎工作,但一段时间以来,我一直在启动时收到错误:

error on 0f3bbb55-6839-4ed6-8127-7976a969f726: corrupted btree at bucket 17571, block 483, 61 keys, disabling caching
Run Code Online (Sandbox Code Playgroud)

我想我可以尝试修复这个,但我已经决定我可能更好的只是禁用bcache - 我不太了解这可能会丢失数据/头发如果出现问题,我认为我会更好关闭使用分区作为交换更快的冬眠.

我的问题是,如何在不重新格式化支持设备的情况下安全地停止在设备上使用bcache?

我使用/ dev/sda7作为我的后备设备,/ dev/sdb2作为缓存设备(/ dev/sdb1是root).

如果重要的话,我正在使用内核3.13.0-21-generic运行Ubuntu 14.04.

更新:我基本上正在寻找一种能够恢复make-bcache -B所做更改的解决方案.FWIW,我最终通过将所有内容移动到新分区并删除旧分区来解决这个问题(请参阅下面的评论),但我会留下这个问题以防万一有人有实际的解决方案.

linux filesystems block-device diskcache bcache

8
推荐指数
3
解决办法
6362
查看次数

如何缓存docker版本的包管理器下载?

如果我composer install从我的主机运行,我会点击我的本地编写器缓存:

  - Installing deft/iso3166-utility (1.0.0)
    Loading from cache
Run Code Online (Sandbox Code Playgroud)

然而,当在Dockerfile中构建一个容器时:

RUN composer install -n -o --no-dev
Run Code Online (Sandbox Code Playgroud)

我下载了所有的东西,例如:

  - Installing deft/iso3166-utility (1.0.0)
    Downloading: 100%         
Run Code Online (Sandbox Code Playgroud)

这是预期的,但我喜欢避免它.即使在重建时,它也会再次下载所有内容.

我想为作曲家提供一个通用缓存,我也可以为其他docker项目转发.

我查看了这个并找到了在Dockerfile中定义卷的方法:

ENV COMPOSER_HOME=/var/composer
VOLUME /var/composer
Run Code Online (Sandbox Code Playgroud)

我把它添加到我的Dockerfile,并且预计只下载一次文件,然后点击缓存.

然而,当我修改我的composer,例如删除-o标志,并重新运行时docker build .,我希望在构建时达到缓存,但我仍然会再次下载供应商.

卷如何在docker容器中拥有数据缓存?

caching composer-php docker diskcache docker-volume

5
推荐指数
2
解决办法
4752
查看次数

Alamofireimage 如何将图像保存到磁盘缓存?

我试图找出是否可以使用Alamofireimage强制将图像保存在磁盘上。查看源代码,我无法找到它实际将图像保存到磁盘的位置。有人知道吗?

image-caching ios diskcache swift alamofireimage

4
推荐指数
1
解决办法
3811
查看次数