闲来无事,做了一个简约的Caching查看窗口,可以方便的查看本地缓存的使用情况:

下面的URL和VersionNum用来查看某个特定资源的特定版本是否存在,分别输入所需信息,点击“检测”,即可在下面显示出结果。

代码如下所示:

using UnityEditor;
using UnityEngine;
using System.Collections; public class CachingViewer : EditorWindow
{
static CachingViewer window; [MenuItem("WZQYEditor/CachingViewer")]
static void Execute()
{
if (window == null)
{
window = (CachingViewer)GetWindow(typeof(CachingViewer));
}
window.Show();
} string url = "";
string version = "";
bool exist = false; void OnGUI()
{
// 信息显示区域
GUI.BeginGroup(new Rect(10f, 10f, 280f, 250f), "", "box");
EditorGUILayout.BeginVertical(); GUILayout.Label("是否激活: " + Caching.enabled);
GUILayout.Label("是否准备好: " + Caching.ready);
GUILayout.Label("缓存总容量: " + Caching.maximumAvailableDiskSpace / (1024f * 1024f) + "M");
GUILayout.Label("已使用: " + Caching.spaceOccupied / (1024f * 1024f) + "M");
GUILayout.Label("还剩余: " + Caching.spaceFree / (1024f * 1024f) + "M");
GUILayout.Label("空闲剩余时间: " + (Caching.expirationDelay / 3600f) + "h"); // 特定资源检索
GUILayout.Label("------------------------------------------------");
GUILayout.Label("URL");
url = EditorGUILayout.TextField(url, GUILayout.Width(200), GUILayout.Height(20));
GUILayout.Label("VersionNum");
version = EditorGUILayout.TextField(version, GUILayout.Width(200), GUILayout.Height(20));
if (GUI.Button(new Rect(210f, 150f, 50f, 50f), "检测"))
{
exist = Caching.IsVersionCached(url, System.Convert.ToInt32(version));
}
GUI.Label(new Rect(0, 210, 200, 20), "该资源是否存在: " + exist);
GUI.Label(new Rect(0, 230, 300, 20), "------------------------------------------------"); EditorGUILayout.EndVertical();
GUI.EndGroup(); if (GUI.Button(new Rect(10, 280f, 280f, 50f), "清空缓存"))
{
Caching.CleanCache();
} } }

注意:在下载资源时,如果本地缓存空间不足,Unity会根据LRU(least-recently-used最近最久未使用算法)置换算法自动删除一些旧资源,以腾出一些空间用来放置新资源。

LRU算法的答题思路是:给缓存中的每个资源加一个计数器,每次访问时,将被访问资源计数器设为0,并将其他计数器加1,当需要置换资源时将计数器最大的淘汰出缓存,这种算法效率和命中率还是很高的。

Caching查看窗口的更多相关文章

  1. 【VBA】查看窗口当前状态

    Excle的窗口分为:最大化,最小化,一般 使用VB代码如何查看窗口的状态呢?代码如下所示: Sub 获取窗口状态() Dim State As String State = Application. ...

  2. 【调试】Visual Studio 调试小技巧(2)-从查看窗口得到更多信息(转载)

    在使用Visual Studio开发调试程序时,我们经常需要打开查看窗口(Watch)来分析变量.有时在查看窗口显示的内容不是很直观.为了能从查看窗口的变量中得到更多的信息,我们需要一些小的技巧.下面 ...

  3. Hierarchy Viewr 配合 adb 命令 查看窗口属性

    Hierarchy Viewr 可以看到当前 的 窗口层次如下

  4. Visual Studio 调试小技巧-从查看窗口得到更多信息(转)

    原文地址:http://blog.csdn.net/cadcisdhht/article/details/5651488

  5. phpmyadmin 在服务起上检测到错误,请查看窗口底部

    使用phpmyadmin一直提示这个警告,看着难受: 解决: 修改文件:/etc/phpmyadmin/config.inc.php 在最后添加这一句, $cfg['SendErrorReports' ...

  6. 查看窗口名 调用dll setForegroundWindow

    package main import ( "fmt" "log" "syscall" "unsafe" ) var ( ...

  7. 查看内存的方法。vs-调试-窗口-内存

    1.vs-调试-窗口-内存 2.把指针复制到内存窗口中,就可以查看窗口的内存了.

  8. 窗口、消息查看分析利器Spy++

    Spy++ —— 窗口.消息查看分析利器 Spy++ —— 窗口.消息查看分析利器 2016年07月15日 00:25:22 阅读数:23170 1,简介   Microsoft Spy++是一个非常 ...

  9. [转帖]linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令

    linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令 https://binwaer.com/post/12.html yun install -y screen ...

随机推荐

  1. Spring之事件发布系统

    springboot应用,启动spring容器大致有如下几个过程: 容器开始启动 初始化环境变量 初始化上下文 加载上下文 完成 对应的Spring应用的启动器的监听器可以监听以上的过程,接口如下: ...

  2. Java 线程 — synchronized、volatile、锁

    线程同步基础 synchronized 和volatile是Java线程同步的基础. synchronized 将临界区的内容上锁,同一时刻只有一个进程能访问该临界区代码 使用的是内置锁,锁一个时刻只 ...

  3. 传递给数据库 'master' 中的日志扫描操作的日志扫描号无效

    错误:连接数据库的时候提示:SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 C:\Documents and Settings\Administrator>" ...

  4. Android带多选功能的PhotoPicker

    最近利用闲碎的一些时间开发了一个Android库PhotoPicker,前面一篇文章也介绍了,Android高仿微信图片选择功能的PhotoPicker,之前没有加入选择多张图片的功能,现在加上之后一 ...

  5. SQL迁移到ORACLE实例

    nohup ./command.sh > output 2>&1 & SQL迁移到ORACLE实例 日常运维中,我们经常会有数据库不同类型的迁移,比较多的就是从sql se ...

  6. 关于css布局的几篇文章

    这可能是史上最全的CSS自适应布局总结 (http://www.cnblogs.com/qieguo/p/5421252.html) 使用 CSS 弹性框 (https://developer.moz ...

  7. [转]说说C#的async和await

    C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: public class MyClass { public MyClass() { Displa ...

  8. hive中同列多行数据组合的方法以及array to string要点(行转列)

    1. 同列多行数据组合成一个字段cell的方法, top N 问题的hive方案 如下: hive 列转行 to json与to array list set等复杂结构,hive topN的提取的窗口 ...

  9. Android Studio 中关于NDK编译及jni header生成的问题

    之前由于工作原因使用grails这个基于groovy的框架做项目,对groovy感觉很好. 基于groovy的gradle构建系统对我而言自然也是好的没得说. Android Studio 正式版出来 ...

  10. Difference between SET, SETQ and SETF in LISP

    SET can set the value of symbols;   SETQ can set the value of variables;   SETF is a macro that will ...