`
skywy
  • 浏览: 6623 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IOS应用性能的提升

    博客分类:
  • IOS
阅读更多
       从开发第一个苹果应用到现在差不多半年的时间,期间大多开发的是新闻资讯类的应用,偶尔开发几个工具类应用,积累了不少解决方案和开发经验,但是开始开发的时间比较紧张,所以一直是一边开发一边找实现功能的方案,没有时间学习基础,多很多地方也是一知半解,只是知道可以这么做就实现这个效果,所以想利用最近的时间提高一下对IOS里一些机制的了解,一个开发者的好坏在于他的应用的性能是好是坏,所以我想就从如何提高应用性能方面作为切入点进行学习。
       根据自己的开发经验,我认为关系应用性能的有两个方面,硬件和软件,硬件当然就是指的应用物理载体本身的性能,比如内存,CPU等;软件就是指的应用本身的框架,平台,机制还有程序代码。就软件方面,我找出了几个提高性能的点,1.IOS的内存管理机制,ARC,2.多线程的利用,3.延迟加载的利用,4.缓存的使用,我将从这四个方面进行研究,以此提高对IOS的理解和认识
       第一部分:内存管理
       ObjectiveC采用的是手动的内管管理机制,在最新的ios5中进入了ARC的模式,可以自动管理内存,但是现在还有大量的机器仍然使用ios4,所以应用中没法采用这个新特性,所以仍要通过手动管理内存。在程序中,对象被创建会在堆里分配内存控件给此对象,然后通过引用计数的机制管理对象的销毁,内存的释放,所以当对象alloc或者retain,copy后不release,则内存将不会被释放,造成内存泄露,所以提高程序的性能和稳定性,首先要避免内存泄露的情况。
       官方资料和网上达人也对此做了一些总结,总结出几个原则:
       1.谁创建(alloc,copy,new)谁释放(release,autorelease)
       2.谁保留(retain)谁释放
       反映到IPHONE/IPAD开发中,就是对象内的实例变量要声明retain,建立get,set方法;在dealloc中release声明的变量;使用nib构建对象时,在voidDidUnload中对iboutlet设置为nil;函数需要创建一个对象并返回该对象的,要autorelease;使用mutablearray集合类的addobject函数时,要注意alloc的对象在addobject后要release,因为addobject会自动为这个对象的retaincount增加1,在集合销毁时会对每一个item进行release,这样集合中的对象指针就不会变成无效指针,所以需要alloc后放进集合后要马上release,不然会内存泄露;
       未完待续.......
分享到:
评论

相关推荐

    iOS应用性能为剖析.pdf.zip

    这份"iOS应用性能为剖析.pdf.zip"的压缩包文件,提供了一份深入探讨高性能iOS应用开发的资料,尤其关注用户界面、网络开发、内存管理、数据库、能耗、并发以及优化工具等多个核心领域。下面将对这些关键知识点进行...

    深入剖析iOS性能优化.pdf

    这在处理大量数据时尤其重要,可显著提高应用性能。 对于有序数据的检索,如使用indexOfObject:inSortedRange:options:usingComparator:方法在有序范围里搜索对象,其时间复杂度为O(logn),即使用二分搜索法,对于...

    高性能 iOS 应用开发

    1. 性能衡量标准:介绍如何衡量iOS应用性能的方法,包括使用各种性能测试工具来获取数据和指标。这些工具可以是Xcode自带的性能分析器,也可以是第三方的性能监控工具。学习如何分析这些数据并识别性能瓶颈是进行...

    高性能IOS应用开发PDF版

    通过学习这本书,开发者能够掌握iOS应用性能优化的核心技术和方法,提升应用在真实世界环境中的表现。无论是对于新手还是有经验的开发者,这本书都能提供宝贵的知识和实战指导,助力开发出更出色的iOS应用。

    用HTML5开发ios应用

    3. **JavaScript框架**:选择适合的JavaScript框架,如jQuery、Angular、Vue或React,可以提高开发效率和应用性能。 ### 应用商店分发与兼容性 尽管HTML5应用可以通过Web直接访问,但为了在App Store中分发,仍需将...

    25个增强iOS应用程序性能的提示和技巧

    在iOS应用开发中,尤其是在处理UITableView和UICollectionView时,正确使用`reuseIdentifier`对于提升性能至关重要。 ##### 实现方式: - 当tableView请求新的cell时,通过`dequeueReusableCellWithIdentifier:`...

    Swift 4开发iOS应用

    《Swift 4开发iOS应用》是针对最新Swift 4编程语言和iOS SDK的一本详尽教程,旨在帮助开发者深入理解如何使用Swift 4构建高效、功能丰富的iOS应用程序。该资源来源于"Beginning iPhone Development with Swift 4: ...

    ios应用升级 更新提示

    在应用升级过程中,iOS系统会显示一个包含新功能、性能提升或修复问题的描述,让用户了解为什么要进行更新。这个提示通常基于开发者在App Store中提交的新版本的更新日志。因此,开发者应清晰地列出每个新版本的改进...

    Flash开发iOS应用

    一、Adobe AIR在iOS上的性能提升 Adobe AIR,作为Adobe公司的跨平台运行环境,自版本2.6起,在iOS设备上的性能得到了显著提升。这些改进包括: - BitmapCapture in StageWebView:允许开发者在StageWebView中捕获...

    企业级IOS应用开发

    - **数据交换格式选择:** 数据交换格式的选择对于提高应用性能和维护性至关重要。本书对比分析了XML和JSON两种常见格式,并探讨了在某些场景下使用SOAP协议的可能性。 - **网络请求处理:** 处理网络请求是iOS应用...

    ios应用源码之二维码生成器 2018127

    这个“ios应用源码之二维码生成器 2018127”压缩包可能包含了一个完整的iOS应用项目,用于演示或教学如何在iOS应用中集成二维码生成与扫描功能。下面我们将深入探讨相关的iOS开发知识点。 1. **Swift编程语言**: ...

    马上着手开发iOS应用程序_Apple

    熟悉这些状态有助于优化应用性能,提供更好的用户体验。 #### 应用发布流程 - **证书与配置文件**:在提交应用之前,需要为应用生成适当的证书和配置文件,以便进行签名和验证。 - **App Store Connect**:通过App...

    ios应用源码之两个计算器的源代码 ing_calculator_1.53 2018127

    "ios应用源码之两个计算器的源代码 ing_calculator_1.53 2018127"是一个宝贵的资源,它提供了两个计算器应用的完整源码,这对于iOS开发者来说,特别是初学者,是一个极好的学习机会。 首先,我们要明确的是,iOS...

    ios 应用皮肤切换(主题图片切换)

    在iOS应用开发中,皮肤或主题切换是一种常见的需求,它允许用户根据个人喜好改变应用的外观。本示例“ios 应用皮肤切换(主题图片切换)”将介绍如何实现这一功能,通过源码和工具的配合,为用户提供个性化的体验。 ...

    Swift-编-程-实-战-iOS应用开发实例及完整解决方案.

    总结,《Swift编程实战:iOS应用开发实例及完整解决方案》涵盖了从Swift语言基础到iOS应用开发的各个方面,无论你是初学者还是经验丰富的开发者,都能从中受益,提升自己的iOS开发能力。通过阅读和实践书中的实例,...

    IOS应用源码之CocoaChina.zip

    总的来说,通过对"CocoaChina.zip"压缩包中的源码进行深入学习,开发者可以了解到iOS应用开发的全貌,包括基本架构、设计模式、网络通信、数据存储、界面布局、动画效果、第三方库的使用以及性能优化等多个方面。...

Global site tag (gtag.js) - Google Analytics