Tag: 性能

迅速的应用程序需要~6分钟才能build立

我有一个约100kstring数组的Swift应用程序。 数组看起来像这样: let strings: [String] = [ "a", "as", // 99,998 elements later… "zebra" ] 在iOS模拟器中构build和运行应用程序需要将近6分钟的时间。 我已经将这个数组包含在项目中的时间缩短了。 一旦build成,后续发射速度非常快(直到我不得不再次build立)。 我能做些什么来加快构build过程?

计算一个位置和一个位置列表之间的距离

我有一个位置列表,遵循这种模式: [1] = {lat = -40.2452, longitude = -76.2489}, [2] = {lat = -40.2452, longitude = -76.2489}, [3] = {lat = -40.2452, longitude = -76.2489}, [4] = {lat = -40.2452, longitude = -76.2489} 和一个地方 location = {lat = -40.2452, longitude = -76.2489} 我想要计算这个距离内的哪个位置。 我find了一个计算两点之间距离的公式。 但如果这个清单很大! 有没有更快的方法? 或者你可以在循环中通过列表? FOR LOCATION IN LISTLOCATION DO IF GETDISTANCE(LOCATION, LOCATION2) […]

在滚动时将部分插入到UICollectionView时的性能问题

基本上我使用默认的UICollectionViewFlowLayout 。 当我使用insertSections它需要一些时间。 特别是如果用户滚动这会带来一些口吃。 我正在使用自动布局,在我的自定义UICollectionViewCell上定位标签。 我正在出列单元格和补充视图(标题)。 这里没什么特别的 以下是时间分析器的截图: 你可以在这里看到的是, prepareLayout的UICollectionViewFlowLayout消耗了三分之一的可用CPU功率。 有没有可能加速呢? 例如,为layoutAttributesForElementsInRect: , layoutAttributesForItemAtIndexPath: , collectionViewContentSize , prepareLayout编写自定义方法? 这个方法怎么样? 我做的其他观察: 更多的部分添加更长的performBatchUpdates插入部分(约420项)。 每次添加相同数量的项目。 我用仪器做了一些testing。 当发生口吃时,CPU使用率超过100%。 真正的内存使用量正在增加,但我结束了约60 MB的testing。 当时大约有48000个细胞被加载到数据集中(大约45个始终在屏幕上)。 一旦这些单元格被加载,滚动工作就能stream利地进行(CPU最多100%,但只有很短的时间,用户不会注意到)。 在另一个testing中,总共分配的字节大约是1.6GB,但是持续的低。 如果插入了新的部分,框架也会下降到0。 我试图离开单元格的自动布局,为单元格使用不透明的背景颜色,使用剪辑来限制单元格,使用shouldRasterize等等。 单元格不重叠,不应使用小数值(舍入宽度)。 我根本不使用阴影。 我也试图评论事情,看看有什么错,但我认为这一定是必不可less的。 我在模拟器以及不同的设备上进行了testing。 有谁有线索如何提高插入部分时的性能?

确定GPS位置是否在gpx轨道段内

我有这个格式如下的.gpx文件: <trk> <name>Area1</name> <extensions> <gpxx:TrackExtension> <gpxx:DisplayColor>Magenta</gpxx:DisplayColor> </gpxx:TrackExtension> </extensions> <trkseg> <trkpt lat="52.806521779700120" lon="5.795177063346190"/> … <trkpt lat="52.806521779700120" lon="5.795177063346190"/> </trkseg> </trk> <trk> <name>Area2</name> <extensions> <gpxx:TrackExtension> <gpxx:DisplayColor>Magenta</gpxx:DisplayColor> </gpxx:TrackExtension> </extensions> <trkseg> <trkpt lat="52.764805147811629" lon="5.377259838276261"/> … 这个包含18000多个坐标的文件描述了几个(相邻的)区域。 我的最终目标是看看,如果一个给定的GPS坐标是在这些地区的任何一个边界内。 那么最好的方法是什么? 相关的中间问题:任何方法都可以合理快速地贯穿所有这些坐标吗?

在iOS中的animation图像的最佳做法 – UIImage或UIImageView?

对不起,如果这个问题有点主观,但我找不到任何关于这个话题。 问题很简单: 以下哪一种select是“最好”的(即最佳性能)。 我想在UIImageView中显示图像,而不pipeselect的解决scheme。 self.imageView.image = [UIImage animatedImageNamed:@"imagename-" duration:2.0f]; 要么 self.imageView.animationImages = listOfMyImageNames; self.imageView.animationRepeatCount = 0; self.imageView.animationDuration = 2; [self.imageView startAnimating]; 我知道UIImageView解决scheme提供了更多的循环数量的灵活性,但我想要一个无限的animation,在这种情况下无关紧要。

Cocos2d和iPhone:视差背景多纹理地图集提供了许多内存警告

我想解决的问题是: 我有6个条纹,我需要以不同的速度移动。 2048 * 2048的纹理表单是不够的,为了解决这个问题,我把图像分成两部分(上半部分和下半部分),所以每个条纹正好是960 * 640像素。 一般的algorithm是为每个条纹分配一个上下半部分,并在每一帧中移动它们,确保在退出用户视图时将它们重新放置在屏幕的顶部。 在本书的ShootEmUp示例中,我的类实现是对ParallaxBackground的直接修改, 在使用仪器运行和分析时给出了太多的内存警告。 请看下面的分析: OpenGL分析: 活动监视器: 令我担心的是在这两个分析中都有大量的内存警告(分别是24和5)。 编辑:下面你可以find解释解释的评论

如何通过重复和自动反向来减慢animation

我正在使用UIView animateWithDuration。 我用UIView beginAnimation,但是苹果说从iOS4.0开始使用新的方法会更好。 我有一个问题,但。 我不能减慢我想要的animation。 [UIView animateWithDuration:25.0f delay:0.0f options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) animations:^ {self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width*0.97f, self.frame.size.height*0.97f);} completion:nil]; 我可以将animateWithDuration的值更改为我想要的值,并始终执行相同的animation! 谢谢您的帮助

iOS不使用http keep-alive。 非常高的延迟

我想testing我的服务器延迟,所以我发送了一个rest请求。 使用restapi客户端,我从桌面得到了大约500毫秒的延迟,但是当我在iOS模拟器(使用AFNetworking)做同样的请求时,我得到1.8秒的延迟。 我的服务器发送保持活动标题,我注意到,从我的电脑的第一个请求是有一个类似的IOS延迟。 我如何让iOS荣誉保持活力或减less延迟? 由于我正在制作实时应用程序,因此我必须具有低延迟。 在同一台计算机上,我的rest客户端比iOS快了约3倍。 我该如何解决这个问题? 编辑::我注意到,从我的服务器禁用https支持时,延迟变成1秒。 对我来说,很明显,有一些问题,iOS不使用保持活着。 我使用wireshark监视networking活动。 下面是以大约1秒为间隔的两个http请求的图片: 可以看出,encryption握手正在进行两次。 使用我的rest客户端,这是在2秒的时间间隔相同的http请求是这样的:

为iOS性能问题绘制应用程序

我正在为iOS创build绘图应用程序。 通过触摸来绘制东西我使用了本教程中的代码: http : //www.raywenderlich.com/18840/how-to-make-a-simple-drawing-app-with-uikit 我用于绘制的代码如下所示: – (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = NO; UITouch *touch = [touches anyObject]; lastPoint = [touch locationInView:self.view]; } – (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = YES; UITouch *touch = [touches anyObject]; CGPoint currentPoint = [touch locationInView:self.view]; UIGraphicsBeginImageContext(self.view.frame.size); [self.tempDrawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, […]

如何提高Android / iOS /等使用Web服务的性能?

我们正在计划一个项目。 基本上我们有很多宁静的服务坐在我们的服务器上。 这些宁静的服务将返回XML作为数据types。 我们将在各种移动平台上构build应用程序,例如Adroid / iOS /可能的其他平台。 应用程序可能需要相当频繁地调用这些宁静的服务。 由于我们正处于规划阶段,我想知道这里有没有人对不同移动平台的性能有所了解。 例如,在移动平台上,我们假设我们需要以非常有效的方式返回数据。 我们可以针对特定移动平台以不同方式压缩数 或者在享受宁静服务时需要关注这些移动平台的其他可能差异?