Wenn ich versuche, von Stackgröße von Threads anzupassen:Ist die Stapelgröße des iPhone behoben?
- (void)testStack:(NSInteger)n {
NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(dummy) object:nil];
NSUInteger size = 4096 * n;
[thread setStackSize:size];
[thread start];
}
- (void)dummy {
NSUInteger bytes = [[NSThread currentThread] stackSize];
NSLog(@"%@", @(bytes));
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
for (NSInteger i = 126; i <= 130; i++) {
[self testStack:i];
}
return YES;
}
in der Ausgabe wird die Größe nicht geändert:
2015-06-19 11:05:06.912 Stack[52982:2082454] 524288
2015-06-19 11:05:06.913 Stack[52982:2082457] 524288
2015-06-19 11:05:06.913 Stack[52982:2082456] 524288
2015-06-19 11:05:06.913 Stack[52982:2082458] 524288
2015-06-19 11:05:06.913 Stack[52982:2082455] 524288
die iPhone-Stack-Größe festgelegt ist?
p.s. Ich teste das oben genannte in iPhone 6 Plus, Debug-Modus.
UPDATE: der Stapel kann eingestellt werden, wenn in dem Simulator auf MacBook ausgeführt wird:
2015-06-19 11:25:17.042 Stack[1418:427993] 528384
2015-06-19 11:25:17.042 Stack[1418:427994] 532480
2015-06-19 11:25:17.042 Stack[1418:427992] 524288
2015-06-19 11:25:17.042 Stack[1418:427991] 520192
2015-06-19 11:25:17.042 Stack[1418:427990] 516096
Warum versuchen Sie, die Stapelgröße zu erhöhen? – duncanc4
Ja, ich denke schon ... Ich habe die iPhones meines Teams eingesammelt und festgestellt, dass ich sie nur ein paar Dutzend hoch stapeln konnte, bevor sie wegen der Kamerabeule auf der Rückseite wippten. – rickster