簡體   English   中英

是否可以使iOS模擬器的性能更像真正的iPhone?

[英]Is it possible to make the iOS Simulator perform more like a real iPhone?

蘋果的iOS模擬器很棒-我一直使用它,因為它比在真實設備上運行要容易得多。 但是,它有一些缺點,其中一個缺點是功能太強大了。 因為它可以訪問計算機的資源,所以我經常發現在iOS Simulator上運行良好(流暢)的代碼並不總是能夠在真實設備(本例中為iPhone 4)上平穩運行。

這個問題的標題說明了一切,但我再說一遍:是否有可能使iOS Simulator像真實的iOS設備一樣執行?

您可以使用“ nice”或“ renice”命令來降低模擬器的調度優先級,但是除非同時運行其他一些更高優先級的任務,否則它可能無濟於事。

就個人而言,我認為最好花一些時間在設備上運行,而不用花很多時間。 其實並沒有那么困難,最終您將對應用程序的真實性能有了一個更好的了解。

將此放置在您應用程序中占用大量內存空間的幾個位置中。 這將生成內存警告,並導致iOS釋放視圖,否則嘗試釋放內存。 您可以同時找到所有viewDidUnload錯誤;-)

#if TARGET_IPHONE_SIMULATOR
    SEL memoryWarningSel = @selector(_performMemoryWarning);
    if ([[UIApplication sharedApplication] respondsToSelector:memoryWarningSel]) {
        NSLog(@"simulated memory warning");
        [[UIApplication sharedApplication] performSelector:memoryWarningSel];
    }
#endif

也許在這里到那里增加一些延遲,以達到很好的效果,但是您必須決定延遲的時間和程度。 這是100ms的延遲:

#if TARGET_IPHONE_SIMULATOR
{ 
    const struct timespec delay = { 0, 100000000 }; 
    nanosleep(&delay, NULL);
}
#endif

您必須在實際設備和模擬器上對特定應用程序進行基准測試,因為差異會因您的應用程序而異。

假設模擬器在您的代碼上的測量速度提高了20倍。 您可以嘗試在應用程序委托中創建重復的NSTimer,然后在計時器回調nanosleep中每0.05秒將主線程納米睡眠47.5毫秒(或其他間隔和比率),然后查看這是否會使“模擬”應用程序的速度降低到大約設備上的應用程序。 您可能必須嘗試反復試驗才能獲得適量的“泥漿”,以使您的應用程序陷入泥潭。

在計時器回調中,您還可以監視應用程序進程的VM臟足跡,並在應用程序擴展一定數量時將其殺死。

不,這就是Apple銷售開發人員許可證的方式。

您也許可以使用某種實用程序來限制CPU和RAM的運行,但這充其量只是一個猜測。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM