0%

项目背景

项目使用unity做游戏,并使用addressables方案管理资源,基于spine作为很多unity的骨骼动画实现方案,在我们的项目中有一些不合理的地方:

  1. 使用ScriptableObject作为桥接SkeletonDataUnity的方案,导致skel文件在加载完成之后不会卸载,这导致Spine动画很多的情况下会导致很多的Native资源占用;
  2. Spine动画使用的地方很多,但是大部分时候只会播放一个动画;

为此我们实现了两个Spine方案上的改动:

  1. SkeletonData加载完成之后手动卸载skel.bytes文件;
  2. 按照动画名字拆分Spine文件中的动画,按需加载Spine动画文件;
阅读全文 »

缓存设计

在读多写少的服务中,可以通过缓存将一些代价较为高昂的请求结果保存,比如对数据库的读取请求或者一些复杂操作结果进行保留,实现较高的性能。因而缓存是一个比较通用但是又效果良好的手段去增强我们的服务性能。

阅读全文 »

什么是detectron2

detectron2 是fair开发的目标检测、语义分割等的对比平台,集成了很多适合用来快速构建自己的目标检测、语义分割的模型和对应的预训练模型,但是官方文档里面只有linux和mac上的安装过程,虽然双系统很不错,但是还是windows能完成是最好的,所以这里介绍windows下需要进行的一些安装配置过程。总的来说分为以下几步:

  1. python安装
  2. cuda和cudnn安装
  3. pytorch 1.3安装
  4. detectron2 windows安装

写在前面:截止 2019 年 12 月,detectron2 官方并不支持 Windows 平台,源码中部分 CUDA 算子直接使用了 Linux 特有的写法,必须手工打 patch 才能编译通过。本文记录的就是在 Windows 10 下走通整套流程的方法,所有版本组合都是当时验证过能跑起来的最稳的一组。

python 安装

当然,windows上需要面对很多奇怪的库的配置,和虚拟环境的需求(虚拟环境真的很重要),所以我选择conda,我电脑上安装的是anaconda3.7的版本,基本上就是截止到目前最新的版本了。但是pytorch环境的版本还是选择了目前来说最为稳定的python3.6,说句实话,几年前配置caffe的时候让我认识到版本这个东西真的很重要,差一点就等同于没有环境。那么还是那样,先创建相应的环境,在此之前先检查一下conda有没有添加到路径中:conda -v,若是报错就是没有把 conda 加到环境变量中,需要在「系统属性 → 环境变量 → Path」中加入 anaconda 安装目录下的 Scripts/Library/bin/

创建并激活环境:

1
2
conda create -n detectron2 python=3.6
conda activate detectron2

这里特意选 3.6 是因为 detectron2 的依赖(fvcore、pycocotools 的 Windows 分支等)在 3.6 上验证最充分;3.7 也能用,但偶尔会遇到一些预编译 wheel 不全的问题。

cuda 和 cudnn 安装

PyTorch 1.3 官方 Windows wheel 提供 CUDA 9.2 / 10.1 两个版本,本文选 CUDA 10.1 + cuDNN 7.6(对显卡驱动要求 ≥ 418.96,二十系卡和一千系卡都能跑)。

阅读全文 »

为什么写博客、

在学生生活中,无聊是最为恐怖的事情,那么怎么避免太过无聊的事情呢,当然是写点什么记录自己的生活,但是日记又太过无聊(我的字丑),而跟风写一下博客就还行。

怎么配置hexo博客

写博客当然是要找一个教程比较多,起点低的方法,其中hexo博客要求很低(windows下面,有一个github账号就可以完成相应的配置),其次hexo的工作流也是一个和未来找工作比较相关工作流(git流程),所以使用hexo进行相应的配置。下面是正式配置过程

阅读全文 »