Caching查看窗口
闲来无事,做了一个简约的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查看窗口的更多相关文章
- 【VBA】查看窗口当前状态
Excle的窗口分为:最大化,最小化,一般 使用VB代码如何查看窗口的状态呢?代码如下所示: Sub 获取窗口状态() Dim State As String State = Application. ...
- 【调试】Visual Studio 调试小技巧(2)-从查看窗口得到更多信息(转载)
在使用Visual Studio开发调试程序时,我们经常需要打开查看窗口(Watch)来分析变量.有时在查看窗口显示的内容不是很直观.为了能从查看窗口的变量中得到更多的信息,我们需要一些小的技巧.下面 ...
- Hierarchy Viewr 配合 adb 命令 查看窗口属性
Hierarchy Viewr 可以看到当前 的 窗口层次如下
- Visual Studio 调试小技巧-从查看窗口得到更多信息(转)
原文地址:http://blog.csdn.net/cadcisdhht/article/details/5651488
- phpmyadmin 在服务起上检测到错误,请查看窗口底部
使用phpmyadmin一直提示这个警告,看着难受: 解决: 修改文件:/etc/phpmyadmin/config.inc.php 在最后添加这一句, $cfg['SendErrorReports' ...
- 查看窗口名 调用dll setForegroundWindow
package main import ( "fmt" "log" "syscall" "unsafe" ) var ( ...
- 查看内存的方法。vs-调试-窗口-内存
1.vs-调试-窗口-内存 2.把指针复制到内存窗口中,就可以查看窗口的内存了.
- 窗口、消息查看分析利器Spy++
Spy++ —— 窗口.消息查看分析利器 Spy++ —— 窗口.消息查看分析利器 2016年07月15日 00:25:22 阅读数:23170 1,简介 Microsoft Spy++是一个非常 ...
- [转帖]linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令
linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令 https://binwaer.com/post/12.html yun install -y screen ...
随机推荐
- Spring之事件发布系统
springboot应用,启动spring容器大致有如下几个过程: 容器开始启动 初始化环境变量 初始化上下文 加载上下文 完成 对应的Spring应用的启动器的监听器可以监听以上的过程,接口如下: ...
- Java 线程 — synchronized、volatile、锁
线程同步基础 synchronized 和volatile是Java线程同步的基础. synchronized 将临界区的内容上锁,同一时刻只有一个进程能访问该临界区代码 使用的是内置锁,锁一个时刻只 ...
- 传递给数据库 'master' 中的日志扫描操作的日志扫描号无效
错误:连接数据库的时候提示:SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 C:\Documents and Settings\Administrator>" ...
- Android带多选功能的PhotoPicker
最近利用闲碎的一些时间开发了一个Android库PhotoPicker,前面一篇文章也介绍了,Android高仿微信图片选择功能的PhotoPicker,之前没有加入选择多张图片的功能,现在加上之后一 ...
- SQL迁移到ORACLE实例
nohup ./command.sh > output 2>&1 & SQL迁移到ORACLE实例 日常运维中,我们经常会有数据库不同类型的迁移,比较多的就是从sql se ...
- 关于css布局的几篇文章
这可能是史上最全的CSS自适应布局总结 (http://www.cnblogs.com/qieguo/p/5421252.html) 使用 CSS 弹性框 (https://developer.moz ...
- [转]说说C#的async和await
C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: public class MyClass { public MyClass() { Displa ...
- hive中同列多行数据组合的方法以及array to string要点(行转列)
1. 同列多行数据组合成一个字段cell的方法, top N 问题的hive方案 如下: hive 列转行 to json与to array list set等复杂结构,hive topN的提取的窗口 ...
- Android Studio 中关于NDK编译及jni header生成的问题
之前由于工作原因使用grails这个基于groovy的框架做项目,对groovy感觉很好. 基于groovy的gradle构建系统对我而言自然也是好的没得说. Android Studio 正式版出来 ...
- 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 ...