Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于 YYImage 的问题 #4

Open
ibireme opened this issue May 4, 2016 · 5 comments
Open

关于 YYImage 的问题 #4

ibireme opened this issue May 4, 2016 · 5 comments

Comments

@ibireme
Copy link

ibireme commented May 4, 2016

YYImage 这个类重写了 imageNamed: 并不是针对内存做的特殊处理,这个方法只是简单模拟一下 UIImage 对应实现,以保证和 UIImage 接口的兼容性。至于没有缓存功能,是因为 UIImage 内置缓存是不能直接访问到的,想做但做不了 (摊手)。

YYImage 这个库主要是用来编解码和播放动图的 (比如 GIF),文档里描述的 动态内存缓存管理 指的是动图播放时的内存处理。

@Magic-Unique
Copy link
Owner

原来是这样, 有人反馈YYImage的imageNamed:没有对图片倍数做智能处理, 比如在传入name的时候已经写了 @2x 或者已经有了后缀名, 然后 YYImage 还是会加入倍数导致出现 @2x@2x 的情况.

@ibireme
Copy link
Author

ibireme commented May 5, 2016

试了下,手动加了 @2x 确实有问题,这个应该改一下做兼容处理。有没有后缀名倒是没影响。

@Magic-Unique
Copy link
Owner

我今天尝试使用runtime解析UIImage,想找到图片缓存的位置。但是没找到。 有没有办法知道某一个线程的方法调用情况(就是那个栈)。然后寻找出imageNamed的缓存位置。

@ibireme
Copy link
Author

ibireme commented May 5, 2016

最简单的方法,就是用 Instruments 的 Time Profile 看一下大概调用栈,每个方法所在的 framework 都能看到,但这样不是很精确。

精确些的,可以试试 https://github.com/johnno1962/Xtrace ;或者直接在模拟器调试时 lldb 中输入 call (void)instrumentObjcMessageSends(YES) 然后去看系统 /tmp/msgSend-**** 日志。

@Magic-Unique
Copy link
Owner

我试一试,谢谢~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants