「WWDC2018」-WWDC Lab:哪些是我們最關心的問題?

「WWDC2018」-WWDC Lab:哪些是我們最關心的問題?

WWDC Lab Q&A

WWDC期間每天都會有蘋果工程師現場答疑活動,這種活動叫Lab。以下是我們的Q&A

Q:記錄FPS最準確的方式是什麼?

A: CADisplayLink會每隔16ms的時候回調一次,如果沒回調就說明掉幀,這是目前最好的辦法了。

Q: instruments 中記錄FPS的方式和CADisplayLink是一樣機制麼?

A: 不太一樣,instruments使用了一些debug flag來記錄FPS,且不會受設備CPU影響,而CADisplayLink會受設備CPU影響,如runloop調度速度會影響CADisplayLink收到回調的速度。

Q: 如何高效處理線上的野指針問題

A: 目前沒有專門的工具檢測線上的野指針問題(我:如果野指針crash很難復現,且棧信息沒什麼用怎麼辦?)棧信息還是很有用的,你能給我看一個崩潰棧麼?

「WWDC2018」-WWDC Lab:哪些是我們最關心的問題?

這個棧顯示是MediaPlayer相關的block被多次釋放了,你需要找到這個block以及可能釋放該對象的代碼,然後用Address Sanitizer看

Q: 目前LLVM支持C_C++_Swift的一些內置attribute,我可以定製attribute麼?

A: 目前還不支持自定義attribute,你想用這個做什麼?(我:配合一些腳本生成代碼,就像Java的annotation和註解處理器),C/C++沒有任何像Java的東西,你用宏或者註釋做吧

(我:那Swift呢?),em....Swift我不熟,那邊的幾個人比較熟(手指向另外幾個工程師),額,應該說是他們設計了Swift┑( ̄Д  ̄)┍

(我轉而問這幾位Swift設計者)

Swift目前(not today)不支持,(我:那以後支持麼?)有可能吧,你想拿這個做什麼?(我:我用Swift寫了一個網絡庫,目前使用特定的IDL以及腳本來生成Swift代碼,不過我希望能用Swift+定製attribute來代替這個IDL),em... Codable可以實現類似的功能,建議你試試


分享到:


相關文章: