- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这是在没有任何用户交互的情况下运行应用程序时使用 iOS7 模拟器的样子(而且我没有运行我的任何代码,只运行样板 Cocos2D):
5.0->6.1 没有这样的问题。产生这个问题的代码是 Cocos2D 样板代码,我试图通过注释将其最小化,这是 App delegate 的最少代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Create the main window
window_ = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// CCGLView creation
CCGLView *glView = [CCGLView viewWithFrame:[window_ bounds]
pixelFormat:kEAGLColorFormatRGB565
depthFormat:0
preserveBackbuffer:NO
sharegroup:nil
multiSampling:NO
numberOfSamples:0];
director_ = (CCDirectorIOS*) [CCDirector sharedDirector];
director_.wantsFullScreenLayout = YES;
// Display FSP and SPF
[director_ setDisplayStats:YES];
// set FPS at 60
[director_ setAnimationInterval:1.0/60];
// attach the openglView to the director
[director_ setView:glView];
[glView setMultipleTouchEnabled:YES];
// 2D projection
[director_ setProjection:kCCDirectorProjection2D];
// [director setProjection:kCCDirectorProjection3D];
// Enables High Res mode (Retina Display) on iPhone 4 and maintains low res on all other devices
if( ! [director_ enableRetinaDisplay:YES] )
CCLOG(@"Retina Display Not supported");
// Default texture format for PNG/BMP/TIFF/JPEG/GIF images
// It can be RGBA8888, RGBA4444, RGB5_A1, RGB565
// You can change this setting at any time.
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
// If the 1st suffix is not found and if fallback is enabled then fallback suffixes are going to searched. If none is found, it will try with the name without suffix.
// On iPad HD : "-ipadhd", "-ipad", "-hd"
// On iPad : "-ipad", "-hd"
// On iPhone HD: "-hd"
CCFileUtils *sharedFileUtils = [CCFileUtils sharedFileUtils];
[sharedFileUtils setEnableFallbackSuffixes:NO]; // Default: NO. No fallback suffixes are going to be used
[sharedFileUtils setiPhoneRetinaDisplaySuffix:@"-hd"]; // Default on iPhone RetinaDisplay is "-hd"
[sharedFileUtils setiPadSuffix:@"-ipad"]; // Default on iPad is "ipad"
[sharedFileUtils setiPadRetinaDisplaySuffix:@"-ipadhd"]; // Default on iPad RetinaDisplay is "-ipadhd"
// Assume that PVR images have premultiplied alpha
[CCTexture2D PVRImagesHavePremultipliedAlpha:YES];
// Create a Navigation Controller with the Director
navController_ = [[MyNavigationController alloc] initWithRootViewController:director_];
navController_.navigationBarHidden = YES;
// for rotation and other messages
[director_ setDelegate:navController_];
// set the Navigation Controller as the root view controller
[window_ setRootViewController:navController_];
// make main window visible
[window_ makeKeyAndVisible];
return YES;
}
我还从 directorDidReshapeProjection
启动中注释掉了 CCDirector
以消除我自己的代码。因此,现在启动应用程序时,我只能在黑屏上看到帧速率。
我在 Instruments 上看到的结果相同。
很遗憾,无法在设备上测试 iOS 7,但我不希望模拟器会那样做。
更新:
我制作了 2 个 Mark Generations,结果如下。
所有项目都是那些 64 字节分配。我不知道它们是什么类型。值得一提的是,我使用的是最新稳定的 Cocos2D 2.1。
更新#2:
64字节分配的调用堆栈。
最佳答案
与其说是一个答案不如说是一个确认:这似乎是一个特定于 iOS 7.0 和 cocos2d 2.1 的问题。
我观察到相同的行为:iOS 7.0 模拟器上的 cocos2d 2.1 随着时间的推移会增加内存使用量。还有很多,每隔几秒大约 1 MB。但是让我们忽略这一点,模拟器不是真正的设备。
在设备上(iPod touch 5th gen with iOS 7)内存几乎没有增加。在 5 分钟内使用标记的世代表示最多增长 15 KB。偶尔会分配一个 10-15 KB 的 block ,但最终会放手,至少是大部分。在 5 分钟内添加和停留的内存量约为 5 KB。不多,但对于不执行任何操作或不响应任何内容的模板应用程序来说,也比没有更多。
在设备上添加且从未释放的内存大多标记为<non-object>
。就像在模拟器中一样,中间有一些 CGPath。因此,这可能表明 iOS 7 上的 cocos2d 2.1 中可能存在内存管理问题 - 尽管该问题太小,不会对大多数应用程序产生任何负面影响(每小时“泄漏”约 100 KB)。
Sprite Kit 和 OpenGL 应用程序以及在 iOS 6 模拟器上运行(我无法在 iOS 6 设备上测试)没有显示任何此类问题,事件字节保持稳定,标记的世代报告根本没有增长。
关于ios - Cocos2D/iOS7 : continuously increasing memory usage for boilerplate code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19111272/
情况 我正在尝试熟悉 Java 中的线程。出于这个原因,我修改了我在一本书中找到的程序列表。所做的事情非常简单: 它创建一个包含 100.000.000 个元素的 boolean[] 数组。 它使用
我正在使用 Zurb Foundation 使用以下代码制作导航栏:
Write a program that reads a sequence of integers and print 'increasing' if each subsequent number i
我有比特币源代码(多线程),我打算添加一些新行。在比特币网络上,数据消息在数据存储在 vector 中的地方交换。我想在 vector 大小增加时执行一些指令: 如何在 C++ 中编写以下模式以便在
We are given a network flow, as well as a max flow in the network. An edge would be called increasin
我想增加 Line2D 的宽度。我找不到任何方法来做到这一点。我是否需要为此实际制作一个小矩形? 最佳答案 您应该使用 setStroke 来设置 Graphics2D 对象的笔画。 http://w
题目地址:https://leetcode.com/problems/increasing-triplet-subsequence/description/ 题目描述: Given an unso
题目地址:https://leetcode.com/problems/longest-increasing-subsequence/description/ 题目描述 Given an unsor
题目地址:https://leetcode.com/problems/monotone-increasing-digits/description/ 题目描述: Given a non-negat
我已经从头开始实现逻辑回归,但是当我运行脚本时,算法总是预测错误的标签。我尝试通过将所有 1 切换为 0 来更改训练输出和 test_output,反之亦然,但它总是预测错误的标签。 我还注意到,将“
我正在尝试增加kivyMD 按钮 的宽度 和高度,但它不受支持(size_hint)。 •我应该创建自己的继承自 Button 类的按钮类吗? •考虑到我希望我的应用程序在 Android 上运行,这
ArrayList tempArray = new ArrayList<>(size); 我正在为我的合并排序构建一个 tempArray,它将根据上下文对整数或字符串进行排序。因此类型为 T Arr
我正在尝试创建大约200万条记录的Lucene。索引时间约为9小时。 您能否建议如何提高性能? 最佳答案 我写了一篇关于如何并行化Lucene索引的可怕文章。它确实写得很糟糕,但是您会发现它是here
我需要你的帮助来解决这个问题 这是我的 ulimit -a 的结果在我的 linux 服务器上 core file size (blocks, -c) 0 scheduling
我想了解: 与完全虚拟化或硬件辅助虚拟化(如 virtio_net 或 virtio_blk)相比,virtio 驱动程序如何提高性能? 这些 virtio 驱动程序如何影响 VMEXIT/VMENT
我正在使用 rose2.m 生成许多角度直方图。我希望显示每个箱子中元素数量的比例范围在 0-50 之间,对于所有地 block 以 10 为增量增加,即使特定地 block 上的最大元素数量小于 5
我正在为我使用远程音频单元的 iPhone 构建一个录音应用程序。在对传入缓冲区执行一些音频分析后,我使用以下方法将缓冲区写入磁盘: ExtAudioFileWriteAsync 但是,我遇到的问题是
您好,我正在解析 xml 文件,我正在返回 Objects 类的 ArrayList,但是对于此方法的每次调用,ArrayList 的大小为从 0-8 和 8 增加到 16 和 24...而不是创建一
在一些 Django 测试中,我有循环来测试很多东西。 在最终结果中它显示为: Ran 1 test in 3.456s 我想为每个循环增加该计数器,我该怎么做? 它正在使用 subTest() ,但
我正在努力解决这个指针算术: int x; int *y = &x; ++y; y 增加了多少? 我知道:“&”是引用运算符,可以读作“address of”。“*”是解引用运算符,可以读作“指向的值
我是一名优秀的程序员,十分优秀!