Kiedy próbuję dopasować rozmiaru stosu wątków:Czy rozmiar stosu iPhone'a jest stały?
- (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;
}
na wyjściu, wielkość nie ulega zmianie:
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
jest wielkość iPhone stos stałe?
p.s. Testuję powyższe w iPhone 6 Plus, tryb debugowania.
UPDATE: stos można regulować podczas pracy w symulatorze na MacBooku:
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
Dlaczego próbujesz zwiększyć rozmiar stosu? – duncanc4
Tak, myślę, że ... zebrałem iPhone'y zespołu i stwierdziłem, że mogę je ułożyć tylko na kilkadziesiąt metrów, zanim zaczną balansować z powodu uderzenia kamery w plecy. – rickster