精华内容
下载资源
问答
  • Glide 缓存工具例子,缓存大小获取,磁盘缓存清除(2 种方法),内存缓存清除

    GlideCatchSimple

    项目地址: YaphetZhao/GlideCatchSimple
    简介:Glide 缓存工具例子,缓存大小获取,磁盘缓存清除(2 种方法),内存缓存清除
    更多: 作者    提 Bug   
    标签:
    Glide-

    Glide 缓存 Simple

    1. 缓存路径的指定
    2. 缓存大小的获取
    3. 磁盘缓存清除(两种方法)
    4. 内存缓存清除

    5. 可 clone 之后查看使用 Simple

    Glide cache Simple.

    1. The cache path specified
    2. The cache size
    3. The disk cache (two ways)
    4. Memory cache to clearMay

    5. use Simple clone after check

    GlideCatchUtil

    获取 Glide 磁盘缓存大小

    public String getCacheSize() {
        try {
            return getFormatSize(getFolderSize(new File(Application.getInstance().getCacheDir() + "/" + GlideCatchConfig.GLIDE_CARCH_DIR)));
        } catch (Exception e) {
            e.printStackTrace();
            return "获取失败";
        }
    }
    

    清除 Glide 磁盘缓存

    public boolean cleanCatchDisk() {
        return deleteFolderFile(Application.getInstance().getCacheDir() + "/" + GlideCatchConfig.GLIDE_CARCH_DIR, true);
    }
    
    public boolean clearCacheDiskSelf() {
        try {
            if (Looper.myLooper() == Looper.getMainLooper()) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        Glide.get(Application.getInstance()).clearDiskCache();
                    }
                }).start();
            } else {
                Glide.get(Application.getInstance()).clearDiskCache();
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
    

    AndroidMainfest.xml and GlideConfiguration.class

    <meta-data
        android:name="com.yaphetzhao.glidecatchsimple.glide.GlideConfiguration"
        android:value="GlideModule" />
    

    Application.class

    public class Application extends android.app.Application {
    
        public static Application instance;
    
        public static Application getInstance() {
            return instance;
        }
    
        @Override
        public void onCreate() {
            super.onCreate();
            instance = this;
        }
    
    }
    
    <application
        android:name=".Application"
        more...
    

    About Me

    YaphetZhao Email:yaphetzhao@gmail.com Email_CN:yaphetzhao@foxmail.com GitHub:http://github.com/YaphetZhao/ QQ:11613371 CSDN_Blog:http://blog.csdn.net/yaphetzhao

    展开全文
  • [root@www chat]# free -m total used free shared buffers cached Mem: 15830 15600 229 0 216 14493 -/+ buffers/cache: 8
    [root@www chat]# free -m
                 total       used       free     shared    buffers     cached
    Mem:         15830      15600        229          0        216      14493
    -/+ buffers/cache:        890      14939
    Swap:         7983          0       7983
    [root@www chat]# echo 3 > /proc/sys/vm/drop_caches
    [root@www chat]# free -m
                 total       used       free     shared    buffers     cached
    Mem:         15830        506      15323          0          1         27
    -/+ buffers/cache:        477      15352
    Swap:         7983          0       7983
    [root@www chat]# echo 3 > /proc/sys/vm/drop_caches

    展开全文
  • } } /** * 清除图片内存缓存 */ public void clearImageMemoryCache(final Context context){ try{ if(Looper.myLooper() == Looper.getMainLooper()){ Glide.get(context).clearMemory(); } }catch(Exception e){ ...

    Glide使用讲解

    https://blog.csdn.net/bzlj2912009596/article/details/81702367 

     Glide的图片缓存在/data/data/项目包名/cache/image_manager_disk_cache文件夹下

    public class GlideCacheUtil {
    
        private static GlideCacheUtil instance;
    
        public static GlideCacheUtil getInstance(){
            if(instance == null){
                instance = new GlideCacheUtil();
            }
            return instance;
        }
    
        /**
         * 清理图片磁盘缓存
         */
        public void clearImageDiskCache(final Context context){
            try{
                if(Looper.myLooper() == Looper.getMainLooper()){
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            Glide.get(context).clearDiskCache();
                        }
                    }).start();
                }else{
                    Glide.get(context).clearDiskCache();
                }
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    
        /**
         * 清除图片内存缓存
         */
        public void clearImageMemoryCache(final Context context){
            try{
                if(Looper.myLooper() == Looper.getMainLooper()){
                    Glide.get(context).clearMemory();
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    
        /**
         * 删除指定目录下的文件,这里用于缓存的删除
         *
         * @param filePath filePath
         * @param deleteThisPath deleteThisPath
         */
        private void deleteFolderFile(String filePath, boolean deleteThisPath) {
            if (!TextUtils.isEmpty(filePath)) {
                try {
                    File file = new File(filePath);
                    if (file.isDirectory()) {
                        File files[] = file.listFiles();
                        for (File file1 : files) {
                            deleteFolderFile(file1.getAbsolutePath(), true);
                        }
                    }
                    if (deleteThisPath) {
                        if (!file.isDirectory()) {
                            file.delete();
                        } else {
                            if (file.listFiles().length == 0) {
                                file.delete();
                            }
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * 清除图片所有缓存
         * 主要调用这个方法
         */
        public void clearImageAllCache(Context context) {
            clearImageDiskCache(context);
            clearImageMemoryCache(context);
            String ImageExternalCatchDir=context.getExternalCacheDir()+ ExternalCacheDiskCacheFactory.DEFAULT_DISK_CACHE_DIR;
            deleteFolderFile(ImageExternalCatchDir, true);
        }
    }

     

    展开全文
  • 内存缓存

    千次阅读 2019-03-20 10:21:30
    内存缓存 什么时候用 愿意消耗一些内存空间来提升速度 预料某些数据会被查询多次以上 缓存中存放的数据不会超过内存容量(应用程序的本地缓存,不会把数据存储到文件或服务器上) 可用方式 Google Guava Cache ...

    内存缓存

    什么时候用

    1. 愿意消耗一些内存空间来提升速度
    2. 预料某些数据会被查询多次以上
    3. 缓存中存放的数据不会超过内存容量(应用程序的本地缓存,不会把数据存储到文件或服务器上)

    可用方式

    • Google Guava Cache

        Guava Cache是google中非常方便易用的本地缓存实现,
        基于LRU算法(Least recently used,最近最少使用的数据。
        根据数据访问历史记录来进行淘汰数据)实现,支持多种缓存过期策略
      
    • ConcurrentHashMap

    比较

    使用

    Google Guava Cache 使用

    引用:

    		<dependency>
       	    <groupId>com.google.guava</groupId>
       	    <artifactId>guava</artifactId>
          	 <version>27.0.1-jre</version>
         </dependency>
    

    创建对象:

    	Cache<String, Object> cache = CacheBuilder
                                .newBuilder()
                                .build(); //最简便初始化对象
    
    初始化方法说明备注
    maximumSize()限制缓存的大小,如果缓存数量达到限制,则销毁最早的数据
    maximumWeight()权重值回收,超过设置的权重值回收。多个回收配合 weigher()使用
    weigher()根据一定计算拿到权重值配合maximumWeight()使用
    expireAfterWrite()缓存在设定时间内没有被 写(创建/修改),则回收适用:缓存数据总是在固定时候后变得陈旧不可用
    expireAfterAccess()缓存在设定时间内没有被 读/写 则回收
    weakKeys()使用弱引用存储键。当键没有其它(强或软)引用时,缓存项可以被垃圾回收。因为垃圾回收仅依赖恒等式(),使用弱引用键的缓存用而不是equals比较键暂不理解
    weakValues()使用弱引用存储值。当值没有其它(强或软)引用时,缓存项可以被垃圾回收。因为垃圾回收仅依赖恒等式(),使用弱引用值的缓存用而不是equals比较值暂不理解
    softValues()使用软引用存储值。软引用只有在响应内存需要时,才按照全局最近最少使用的顺序回收。考虑到使用软引用的性能影响,我们通常建议使用更有性能预测性的缓存大小限定(见上文,基于容量回收)。使用软引用值的缓存同样用==而不是equals比较值。暂不理解
    refreshAfterWrite()缓存在设定时间内被 写创建/修改) 则刷新属性值配合 CacheLoader回调使用(必须)

    cache Api:

    API说明备注
    getIfPresent()通过key获取缓存中的value,若不存在直接返回null
    get()通过key获取缓存中的value,若不存在就通过valueLoader来加载该valuevalueLoader要么返回非null值,要么抛出异常,绝对不能返回null
    put()添加缓存,若key存在,就覆盖旧值
    invalidate()删除该key关联的缓存
    cleanUp()执行一些维护操作,包括清理缓存

    统计特性使用-- 统计信息对于调整缓存设置

    1. CacheBuilder.recordStats()用来开启Guava Cache的统计功能

    2. cache方法调用

      • stats()方法会返回CacheStats对象
      • hitRate():缓存命中率;
      • averageLoadPenalty():加载新值的平均时间,单位为纳秒;
      • evictionCount():缓存项被回收的总数,不包括显式清除。

    // todo

    1. ConcurrentHashMap 了解
    2. Cache实现类的差异性
    展开全文
  • linux 清除内存缓存

    千次阅读 2018-10-18 22:28:31
    sync; echo 3 &gt; /proc/sys/vm/drop_caches
  • Java中缓存之内存缓存

    万次阅读 2016-04-08 17:04:05
    Java中缓存之内存缓存 1.缓存为什么要存在  应用服务器资源是有限的,数据库每秒中接受请求的次数也是有限的。如果利用有限的资源来提供尽可能大的吞吐量呢,一个办法:减少计 算量,缩短请求流程(减少网络io或者硬盘...
  • Glide-内存缓存与磁盘缓存

    万次阅读 热门讨论 2017-02-14 11:48:39
    前言:这一节我们将讲到Glide的内存缓存和磁盘缓存(网上流传的比较广的几篇文章都是直接从是一篇译文中拷贝过去的,那篇译文在许多地方都翻译错误了,其中很大的一个错误就是关于缓存一块的问题)Glide 系列目录 ...
  • 缓存分为内存缓存和硬盘缓存
  • 利用SDWebImage清除内存缓存

    千次阅读 2016-11-28 15:07:05
    我们在使用SDWebImage下载图片的时候会发现如果一个TableView上的单元格很多而且每个单元格上都有图片那么在上滑单元格的时候内存会越来越大,因此我们必须想一个清除内存的方法,今天介绍的方法就是SDWebImage中的...
  • 内存缓存内存缓存是Android自带的LruCache,LruCache内部主要采用LinkedHashMap来实现,而LinkedHashMap天生自带缓存特性,可支持FIFO和LRU访问。LinkedHashMap的特点LinkedHashMap继承自HashMap,同时也继承了...
  • iOS开发之内存缓存 磁盘缓存 沙盒

    千次阅读 2017-08-18 16:21:56
     说到缓存,缓存分为内存缓存和磁盘缓存两种,内存是指当前程序的运行空间,磁盘是程序的存储空间; 内存缓存速度快容量小,磁盘缓存容量大速度慢可持久化;内存是临时存储文件用的,供CPU直接读取,比如说打开一个...
  • memcachaed内存缓存优化

    2016-06-02 23:29:23
    适用场景:分类展示适合缓存存储(在后台可做一个一键清除缓存) 简单使用方法:set\get\add\replace\delete\删除所有 缓存失效情况:空间已满(删除使用频率最低RLU策略)或时间已到 session储存在
  • SQL Server 缓存清除内存释放

    万次阅读 2018-05-23 13:43:52
    这是由于他对于内存使用的策略是有多少闲置的内存就占用多少,直到内存使用虑达到系统峰值时(预留内存根据系统默认预留使用为准,至少4M),才会清除一些缓存释放少量的内存为新的缓存腾出空间。这些内存一般都是...
  • 发布时间:2014-12-25 15:20 分类:android开发基础 ...内存缓存即把数据保存在内存中,如果缓存的数据超过设定的内存限制就删除最先缓存进来的数据。下面的MemoryCache缓存类是先创建一个Map对象
  • glide内存缓存机制

    千次阅读 2019-08-02 14:02:54
    1)首先Glide内存缓存采用了2种策略,弱引用缓存和LRU算法内存缓存(2)弱引用缓存就是把图片的弱引用缓存在一个HashMap中,被下载使用的图片首先会缓存在这个弱引用HashMap中。Glide会通过引用计数的方式来记录图片...
  • Android之本地缓存——LruCache(内存缓存)与DiskLruCache(硬盘缓存)统一框架 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间删除,谢谢您。]
  • Android Glide数据更新及内存缓存、硬盘缓存清理事项Android的Glide在加载图片时候内部默认使用了缓存机制,Glide的缓存机制分为两级,第一级是内存缓存,然后第二级是硬盘缓存。缓存的过程首先是在内存中缓存,然后...
  • android缓存管理器,分为两级缓存:内存缓存和文件缓存;先取内存数据,没有再从文件缓存中获取 特点 封装,继承其所有功能 二级缓存 内存缓存(采用SoftReference和LruCache,防止内存溢出) 文件缓存(由...
  • 服务器内存缓存清理

    千次阅读 2020-04-27 10:45:26
    1、内存查看 free -h #以GB为单位展示当前系统内存数据 ...2、直接清除缓存 echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches #说明 #ec...
  • 一个php内存缓存Memcached类代码,构造方法,用于添加服务器并创建memcahced对象,获取memcached对象,检查mem是否连接成功,向memcache中添加数据,获取memcahce中保存的数据,删除和同一个表相关的所有缓存。
  • 2.解决方案在业务层和数据库持久层之间引入一层内存缓存层,对于复杂且业务逻辑上不会变化的查询结果进行缓存,业务请求再次发起时,每次都先从缓存层中查询,从而大大减少对数据库的查询,减小对数据库的压力。...
  • iOS开发之缓存(一):内存缓存 iOS内存缓存和磁盘缓存的区别 iOS开发之内存缓存 磁盘缓存 沙盒
  • Android中缓存的必要性: 1、没有缓存的弊端: 流量开销:对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量。 加载速度:如果应用中图片加载...
  • 清除缓存,计算本地缓存内容的大小,之后清除,刷新内存大小。随便谢谢的。新手。希望不要吐槽
  • 这篇文章将介绍一下如何在iOS设备中进行缓存,本文先介绍一下将内容缓存内存中,下一篇文章就介绍一下在iOS磁盘上缓存内容。
  • linux清除内存缓存方法

    千次阅读 2012-05-24 13:45:12
    Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free. To free pagecache: echo 1 > /proc/sys/vm/drop_caches ...
  • Android内存缓存:手把手教你学会LrhCache算法

    千次阅读 多人点赞 2018-09-06 08:52:26
    内存缓存知识在Android开发中实现重要 本文将全面介绍内存缓存的所有相关知识(含LrhCache算法、其原理等),希望您们会喜欢 目录 1. 简介 下面,将详细介绍 LrhCache算法 2. LrhCache算法 ...
  • 原标题:如何在Windows 7中清除内存缓存,释放电脑空间?与其他所有操作系统一样,Windows 7也会在其缓存...第1部分:如何在Windows 7上清除内存缓存可以通过Windows 7自带的工具来帮助清除系统上的内存缓存,只需按...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 422,620
精华内容 169,048
关键字:

内存缓存可以删除吗