有时随机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的问题,或者可能是基于自定义磁盘的缓存的问题,但我没有立即看到(从堆栈跟踪)如何"清除"此缓存或执行条件检查或处理此异常
洞察力赞赏
我的笔记本电脑上有一个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,我最终通过将所有内容移动到新分区并删除旧分区来解决这个问题(请参阅下面的评论),但我会留下这个问题以防万一有人有实际的解决方案.
如果我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容器中拥有数据缓存?
我试图找出是否可以使用Alamofireimage强制将图像保存在磁盘上。查看源代码,我无法找到它实际将图像保存到磁盘的位置。有人知道吗?
diskcache ×4
android ×1
bcache ×1
block-device ×1
caching ×1
composer-php ×1
docker ×1
filesystems ×1
ios ×1
linux ×1
swift ×1