聽Colt McAnlis講why 60fps:網絡
在應用性能的世界裏,你總能聽見有人討論60幀每秒和16毫秒的界限。可是你有沒有停下來問,爲何是這些數值?若是你是嚴肅對待性能問題的開發人員,這就是一個值得研究的技術細節。性能
讓咱們回想一下,要知道,這些大部分都和硬件——人體硬件有關。人的眼睛和相機不一樣,眼睛並不會向大腦發送這個世界的截圖。相反,你的大腦會持續的處理你的眼睛傳送的可視圖像。可是這裏並無幀和截圖的概念。咱們這種動做是由幀組合的概念,其實是由一個駭客破解。由於若是能足夠快速的顯示圖像,咱們就能夠欺騙人類大腦,讓他們覺得眼前的幀就是動做。視頻
這裏咱們須要注意的就是圖像顯示速度的快慢很大地影響了動做的流暢性,最少你會須要10-12幀每秒的速度才能讓人類大腦相信這些圖像是一個動做。blog
24幀每秒時,人眼會看到流暢的畫面,但這要多虧運動模糊這些視覺效果。另外,24幀每秒對電影行業來講很是重要,由於它對展示動做來講已經足夠了,同時製做成本也足夠低,能知足電影製做的預算。這也就是爲何在過去50年裏,你所看到的大部分電影,都是24幀每秒的。如今30幀每秒對電影來講已經足夠,可是沒有華麗的影院效果,它並無那麼令人信服。圖片
事實上60幀每秒纔是最棒的,不須要那些視覺效果,卻依然精彩流暢。大部分人接受不了比這更高的幀數。如今值得注意的是,針對圖片的非連續性,人眼的辨識力仍是很是高的。例如,若是你以60幀每秒的速度運動,而後時不時忽然降至20幀每秒,人眼就會察覺到這裏面的不流暢性。這會致使用戶的緊張和不適應。開發
做爲應用開發人員,你的目標很清晰,那就是保證你的應用在60幀每秒,並在用戶體驗期間保持這個速度不變。60幀每秒意味着做爲一個開發人員你要在16毫秒每幀(1000ms / 60frame = 16.666ms/frame)的狀況下完成全部的工做,包括輸入、計算、網絡傳輸和渲染等。只有這樣,你的應用纔會有流暢的用戶體驗。get
事實上,不少問題會致使你的幀會超過16毫秒,爲了找到這些問題並解決他們,你要查看其它的Android性能模式內容,別忘了加入咱們的Google+社區一塊兒參加討論。請記住:保持淡定,分析代碼,性能很重要。社區
視頻地址:https://www.youtube.com/watch?v=CaMTIgxCSqU&index=25&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE用戶體驗