240 發(fā)簡(jiǎn)信
IP屬地:北京
  • 文章不錯(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攘乒。

  • 120
    AvoidCrash的集成注意事項(xiàng)、疑惑的解答

    很多開(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算法析苫,...

  • 120
    博客百篇璧榄,其義自見(jiàn)

    去年,我在微博上發(fā)起了100天閱讀博文的行動(dòng)吧雹。具體就是骨杂,每天讀一篇 iOS 開(kāi)發(fā)相關(guān)的技術(shù)博文,并在微博上分享自己的讀后感雄卷。對(duì)于在開(kāi)發(fā)搓蚪、工作、和面試中常見(jiàn)的問(wèn)題丁鹉,通過(guò)這段時(shí)間...

  • 120
    如何正確的從UI圖中取色

    在移動(dòng)開(kāi)發(fā)過(guò)程中妒潭,從UI圖上獲取顏色是日常開(kāi)發(fā)中常有的事。不過(guò)從圖片獲取顏色也有很多種操作方式揣钦,很多人在日常中取到的并不是“正確”的值雳灾。 上策:避免從圖片中取值 最好的情況就...

  • 120
    programming iOS - layer

    每個(gè)UIView有一個(gè)伙伴稱(chēng)為layer,一個(gè)CALayer冯凹。UIView實(shí)際上并沒(méi)有把自己畫(huà)到屏幕上;它繪制本身到它的layer上谎亩,它的layer被繪制到屏幕上。正如我已經(jīng)...

  • 詳解CALayer 和 UIView的區(qū)別和聯(lián)系

    前言 前面發(fā)了一篇iOS 面試的文章,在說(shuō)到 UIView 和 CALayer 的區(qū)別和聯(lián)系的時(shí)候匈庭,被喵神指出沒(méi)有切中要點(diǎn)夫凸,所以這里就 CALayer 和 UIView 這個(gè)...

  • 120
    Runtime詳解

    轉(zhuǎn)發(fā)自一個(gè)低調(diào)的iOS開(kāi)發(fā) 簡(jiǎn)介 Runtime 又叫運(yùn)行時(shí),是一套底層的 C 語(yǔ)言 API阱持,其為 iOS 內(nèi)部的核心之一夭拌,我們平時(shí)編寫(xiě)的 OC 代碼,底層都是基于它來(lái)實(shí)現(xiàn)的...

  • GCD與非GCD實(shí)現(xiàn)單粒設(shè)計(jì)模式

    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è)....

  • 120
    Xcode 8 Instruments 學(xué)習(xí)(一)

    更新于:20170814更新于:20171222再次更新于:20180823 最近的幾天在看一些 Instruments 相關(guān)的知識(shí)啼止,總結(jié)分享一下希望對(duì)大家有所幫助: 本文章...

  • ios轉(zhuǎn)場(chǎng)

    什么是轉(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...

亚洲A日韩AV无卡,小受高潮白浆痉挛av免费观看,成人AV无码久久久久不卡网站,国产AV日韩精品