我有一个应用程序,我称之为内存吃,这是为了迫使其他应用程序被操作系统转储.它通过消耗大量内存来实现这一点,直到它因内存压力而终止.为了消耗内存,我基本上制作了数据的JPEG表示的副本:
-(IBAction)didTapStartButton:(id)sender{
int i = 200;
while (i>0) {
NSData* data = [UIImagePNGRepresentation(self.image) mutableCopy] ;
[self.array addObject:[[data description] mutableCopy]];
[self.array addObject:data];
i--;
}
}
Run Code Online (Sandbox Code Playgroud)
这完全是通过反复试验完成的,我认为有一种更直接的方式来消耗大量的内存.
你可以malloc()在循环中使用.
while (1) {
int *ptr = malloc(4096);
assert(ptr != NULL);
*ptr = 0;
}
Run Code Online (Sandbox Code Playgroud)
该*ptr = 0行必须强制页面变脏,否则您将占用地址空间而不是内存.数字4096确保通过循环的每次迭代将恰好将一个脏页面添加到地址空间,因为4096是最常见的页面大小.
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |