文章不錯(cuò),干活滿(mǎn)滿(mǎn)辕录,就是對(duì) 3.3 節(jié)有點(diǎn)小疑問(wèn)澄阳,感覺(jué)應(yīng)該不能在子線程上運(yùn)行 DisplayLink,因?yàn)榉祷氐?FPS 值沒(méi)有意義踏拜。
我自己測(cè)試了一下碎赢,在主線程和子線程上同時(shí)開(kāi)啟 DisplayLink,然后對(duì)比它們的輸出速梗。當(dāng)在主線程做了大量 IO 操作肮塞,我自己操作時(shí)都感覺(jué)非常卡時(shí)姻锁,主線程上的 FPS 值很低枕赵,符合預(yù)期,但子線程的基本上一直是 59位隶。
查看了一下 ibireme 大神的經(jīng)典文章 https://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/拷窜,里面提到“在 VSync 信號(hào)到來(lái)后,系統(tǒng)圖形服務(wù)會(huì)通過(guò) CADisplayLink 等機(jī)制通知 App涧黄,App 主線程開(kāi)始在 CPU 中計(jì)算顯示內(nèi)容……”篮昧。對(duì)比我的實(shí)驗(yàn)結(jié)果,感覺(jué) CADisplayLink 可能真的“只是”一個(gè)與 VSync 對(duì)應(yīng) timer笋妥。VSync 每 16ms 觸發(fā)一次懊昨,所以 CADisplayLink 的回調(diào)也每 16ms 觸發(fā)一次,無(wú)論在哪個(gè)線程上春宣。類(lèi)似于 NSTimer. tolerance酵颁,若一個(gè)線程 A 很忙碌,無(wú)法及時(shí)執(zhí)行 CADisplayLink 的回調(diào)月帝,那么此次回調(diào)就被跳過(guò)躏惋,我們統(tǒng)計(jì)的 count 數(shù)就會(huì)變少,算出的 FPS 也變小了嚷辅。同時(shí)簿姨,若另一個(gè)線程 B 不忙,就可以按時(shí)執(zhí)行回調(diào)潦蝇,算出的 FPS 值就會(huì)接近 60款熬。由于我們就是要監(jiān)測(cè)主線程的卡頓情況深寥,所以只能在主線程上啟動(dòng) DisplayLink攘乒。
mobilefellow 評(píng)論自iOS查看屏幕幀數(shù)工具--YYFPSLabel
很多開(kāi)發(fā)小伙伴們經(jīng)常私信問(wèn)我一些問(wèn)題: 1惋鹅、若集成了騰訊Bugly或者友盟等等異常搜集的SDK,AvoidCrash會(huì)影響到它們的異常搜集嗎则酝?2、為什么集成了AvoidCra...
1024
「算法與數(shù)據(jù)結(jié)構(gòu)」從入門(mén)到進(jìn)階吐血整理推薦書(shū)單推薦一下「算法與數(shù)據(jù)結(jié)構(gòu)」從入門(mén)到進(jìn)階的書(shū)單蝠检。 一.入門(mén)系列 這些書(shū)籍通過(guò)圖片、打比方等通俗易懂的方法來(lái)講述挚瘟,讓你能達(dá)到懂一些基礎(chǔ)算法叹谁,線性表,堆棧乘盖,隊(duì)列焰檩,樹(shù),圖订框,DP算法析苫,...
去年,我在微博上發(fā)起了100天閱讀博文的行動(dòng)吧雹。具體就是骨杂,每天讀一篇 iOS 開(kāi)發(fā)相關(guān)的技術(shù)博文,并在微博上分享自己的讀后感雄卷。對(duì)于在開(kāi)發(fā)搓蚪、工作、和面試中常見(jiàn)的問(wèn)題丁鹉,通過(guò)這段時(shí)間...
在移動(dòng)開(kāi)發(fā)過(guò)程中妒潭,從UI圖上獲取顏色是日常開(kāi)發(fā)中常有的事。不過(guò)從圖片獲取顏色也有很多種操作方式揣钦,很多人在日常中取到的并不是“正確”的值雳灾。 上策:避免從圖片中取值 最好的情況就...
每個(gè)UIView有一個(gè)伙伴稱(chēng)為layer,一個(gè)CALayer冯凹。UIView實(shí)際上并沒(méi)有把自己畫(huà)到屏幕上;它繪制本身到它的layer上谎亩,它的layer被繪制到屏幕上。正如我已經(jīng)...
前言 前面發(fā)了一篇iOS 面試的文章,在說(shuō)到 UIView 和 CALayer 的區(qū)別和聯(lián)系的時(shí)候匈庭,被喵神指出沒(méi)有切中要點(diǎn)夫凸,所以這里就 CALayer 和 UIView 這個(gè)...
GCD實(shí)現(xiàn)設(shè)計(jì)模式 在某個(gè)類(lèi)里面實(shí)現(xiàn)GCD單粒設(shè)計(jì)模式 類(lèi)的.h文件 類(lèi)的.m文件 宏定義封裝GCD單粒設(shè)計(jì)模式(1) 將實(shí)現(xiàn)單粒設(shè)計(jì)模式的代碼放到宏定義里面衷咽,并且專(zhuān)門(mén)搞個(gè)....
更新于:20170814更新于:20171222再次更新于:20180823 最近的幾天在看一些 Instruments 相關(guān)的知識(shí)啼止,總結(jié)分享一下希望對(duì)大家有所幫助: 本文章...
什么是轉(zhuǎn)場(chǎng) 轉(zhuǎn)場(chǎng)的本質(zhì)是下一場(chǎng)景(子 VC)的視圖替換當(dāng)前的場(chǎng)景視圖(子 VC)以及相應(yīng)的控制器的切換,表現(xiàn)為當(dāng)前視圖消失和下一視圖出現(xiàn)這一過(guò)程兵罢。 常用的轉(zhuǎn)場(chǎng) 在 UINav...