[英]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.