2014-03-27 37 views
1

所以,我一直在玩核心劇情(iOS版本1.5),看看我可以如何融入我的應用程序。我正在iPad 3上測試它,這通常是我的基本圖形設備。核心繪圖使用大量內存

而是粘貼一噸的代碼,這裏的情節配置:

  • 1圖,採用了純白色主題
  • 1劇情空間
  • 2個獨立散點圖,每小區3個數據點。
  • 2軸:
    • X軸:範圍:2013年12月,2014年3月(NSTimeInterval)。 3個標籤,3個主要蜱和約90個次要蜱(每天1個)
    • YAxis:範圍:0,250。3個標籤,3個主要蜱,12個次要蜱。 YAxis漂浮在圖的右側。
    • 每軸有1個標題

所以,一般我的應用程序坐在周圍33-34 MB的使用。如果顯示一些圖像,它可能會達到50 mb,但通常它會位於33-34 mb範圍內。但是,加載Core Plot會將內存跳至63 mb左右。如果我啓用縮放並縮放圖表來縮放它我只需拖動圖表,內存使用率峯值達到〜143 mb,然後穩定回到84m​​b。當我關閉圖形時,內存下降到大約22mb,我認爲這是因爲其他緩存由於內存壓力而被清除。

另外,也許相關,捏和拖動圖形是非常緩慢。也許平均2-3 FPS與下降到2 SPF(每幀秒...嚴重)。

它看起來像核心繪圖是一個淫穢數量的內存,是非常緩慢。

我錯過了什麼,或者這只是核心劇情的方式?除非我能夠加速並使用更少的內存,否則我無法在生產環境中使用Core Plot。

更新
我已經使用儀器描述了我的應用程序。除了所有的內存增益都在Core Plot對象中(或者從它們衍生而來)之外,這裏沒有太多要說的。時間分析器顯示,當我調整大小或移動繪圖時,大部分時間都花費在源自drawInContext:方法的各種核心繪圖方法之一中。具有諷刺意味的是,該方法的第一行是self.useFastRendering = YES;

我會補充說情節幾乎是全屏。我有幾個其他控件來編輯繪圖字段,圖形類型等,但就是這樣。

說實話,我很希望我會錯過某些與表演有關的財產,但似乎並非如此。核心圖可能適用於靜態圖,但它在交互性和性能方面落後。

我花了一些時間看看Shinobi Controls並檢查他們的iOS演示。這正是我想要的圖表中交互性的一種交互性。但我很懷疑在我的應用中包含昂貴的,封閉的第三方代碼......

可能我會花時間手工創建我的圖表。

+2

核心繪圖確實存在已知的性能問題,特別是在像iPad 3這樣的舊硬件上,但這聽起來非常極端。你有沒有分析應用程序,看看瓶頸在哪裏? –

+0

是的,我介紹了這個應用程序(見上文)。這個問題幾乎完全在覈心劇情中。 –

+0

我有同樣的問題亞倫..簡單的餅圖.. 3節..我正在觀看設備定位通知和內存穿過屋頂,在設備的幾次旋轉後崩潰的應用程序..看着Shinobi圖表也許..可能必須爲Shinobi自己分出..! – jheneghan

回答

0

不幸的是,核心圖是一個非常緩慢的庫,它只能處理內存和CPU使用率失控之前的幾百個數據點。

還有其他的圖表組件能夠更有效地處理大數據。看看https://stackoverflow.com/a/45589678/303612瞭解更多信息