WWDC Lab Q&A
WWDC期間每天都會有蘋果工程師現(xiàn)場答疑活動,這種活動叫Lab堡称。以下是我們的Q&A
Q:記錄FPS最準確的方式是什么?
A: CADisplayLink會每隔16ms的時候回調(diào)一次艺演,如果沒回調(diào)就說明掉幀却紧,這是目前最好的辦法了。
Q: instruments 中記錄FPS的方式和CADisplayLink是一樣機制么胎撤?
A: 不太一樣晓殊,instruments使用了一些debug flag來記錄FPS,且不會受設備CPU影響哩照,而CADisplayLink會受設備CPU影響挺物,如runloop調(diào)度速度會影響CADisplayLink收到回調(diào)的速度。
Q: 如何高效處理線上的野指針問題
A: 目前沒有專門的工具檢測線上的野指針問題(我:如果野指針crash很難復現(xiàn)飘弧,且棧信息沒什么用怎么辦识藤?)棧信息還是很有用的砚著,你能給我看一個崩潰棧么?
這個棧顯示是MediaPlayer相關(guān)的block被多次釋放了痴昧,你需要找到這個block以及可能釋放該對象的代碼稽穆,然后用Address Sanitizer看
Q: 目前LLVM支持C_C++_Swift的一些內(nèi)置attribute,我可以定制attribute么赶撰?
A: 目前還不支持自定義attribute舌镶,你想用這個做什么?(我:配合一些腳本生成代碼豪娜,就像Java的annotation和注解處理器)餐胀,C/C++沒有任何像Java的東西??,你用宏或者注釋做吧
(我:那Swift呢瘤载?)否灾,em....Swift我不熟,那邊的幾個人比較熟(手指向另外幾個工程師)鸣奔,額墨技,應該說是他們設計了Swift┑( ̄Д  ̄)┍
(我轉(zhuǎn)而問這幾位Swift設計者)
Swift目前(not today)不支持,(我:那以后支持么挎狸?)有可能吧扣汪,你想拿這個做什么?(我:我用Swift寫了一個網(wǎng)絡庫锨匆,目前使用特定的IDL以及腳本來生成Swift代碼崭别,不過我希望能用Swift+定制attribute來代替這個IDL),em... Codable可以實現(xiàn)類似的功能统刮,建議你試試