這裏我優化了我的精靈套件代碼,試圖測試我的遊戲引擎的邊界。優化SpriteKit
使用儀器時,剖析我修復了大部分我自己的問題,現在停留在唯一的瓶頸是
37.0ms 66.0% 0,0 -[SKTextureAtlas textureNamed:]
(我的遊戲加載了大量的精靈從TextureAtlases每半秒) 怪異的事情是的,似乎在我的大多數測試中一直持續下去,似乎純粹的NSString-名稱比較導致了上述方法中超過三分之一的工作。 這裏的樹:
15.0ms 26.7% 0,0 -[NSString caseInsensitiveCompare:]
15.0ms 26.7% 0,0 -[NSString compare:options:range:]
15.0ms 26.7% 0,0 -[NSString compare:options:range:locale:]
15.0ms 26.7% 6,0 CFStringCompareWithOptionsAndLocale
對於一些這樣的表現,重要的,是蘋果提供的字符串比較真的那麼差嗎?爲什麼他們不能提供更簡單的方式來訪問地圖集中的紋理,我們在這裏不需要花哨的字符串,它可以通過int來迭代我們所關心的。
有沒有比較的經驗呢?
你有預裝在你的遊戲中使用的紋理? – ZeMoon 2014-09-23 05:08:07