首页 文章 精选 留言 我的

精选列表

搜索[Bot管理],共10000篇文章
优秀的个人博客,低调大师

iOS内存管理学习笔记一

1、引用计数 引用计数就是当前的对象被多少个其他对象所引用。这是我自己的理解。 MRC:手动引用计数,开发者自己来计算每一个对象被引用了多少次,自己进行内存的释放。 ARC:自动引用计数,编译器(xcode)来计算每一个对象的引用次数,对象由编译器来决定什么时候释放。 进一步说,所谓的ARC就是编译器帮我们在代码的合适位置插入了retain和release等MRC需要开发者手动写的关于对象引用计数的代码。 ARC环境: 1>xcode4.2或以上版本 2>LLVM3.0以上的编译器 3>编译器选项中设置ARC为有效 2、理解引用计数 举个简单的例子(可能不是那么贴切): 假如工作室里只有一盏灯,每个上班的员工上班时间都需要开灯,下班时间都需要关灯。假如有很多人上下班,最早上班的人A开了灯,A工作了八个小时下班了,把灯关掉,这样的话,没有下班的其他人都会处在一片黑暗之中。这样显然是不合理的,那么该如何解决呢? 解决这一问题是在办公室至少还有一人的状态下保持开灯,在最后一个人离开办公室的时候关灯。 我们来捋一下这个过程: 1>第一个进来的人需要照明,开灯 2>之后进来的人需要照明 3>下班离开办公室的人不需要照明 4>最后一个离开办公室的人不需要照明(此时已经无人需要照明),关灯 我们可以使用“引用计数”来判断办公室里是否还有人需要照明。过程如下: 1>第一个人进来了,需要照明,引用计数从0变为1,要开灯 2>第二个人进来了,需要照明,引用计数从1变为2 3>第一个人离开了,不需要照明,引用计数从2变为1 4>第二个人离开了,不需要照明,引用计数从1变为0,关灯 总结:只要引用计数=0,就是关灯状态,否则就是开灯状态。 在OC中,“对象”就是照明设备,那些使用该对象的“环境”就相当于需要照明的人。 开灯——生成对象(alloc,new,copy等) 需要照明——持有对象(retain等) 不需要照明——释放对象(release) 关灯——废弃对象(地址被回收,这个对象烟消云散了) 下面是个人理解的对象生命周期: Person是一个类 Person * xiaoming = [[Person alloc]init]; 这个时候再内存中开辟了一块内存空间,并初始化这个对象。引用计数从0变为1,相当于开灯。 image.png Person * xiaohong = xiaoming; 这时候引用计数要增加了。相当于又有人需要照明,引用计数 = 2. image.png 然后xiaohong在使用完这个对象之后就把对象释放了。现在引用计数-1,引用计数=1 [xiaohong release]; image.png xiaoming在使用完这个对象的时候也进行了释放。相当于不需要照明,引用计数-1,引用计数 = 0 . [xiaoming release]; image.png 这个时候,系统发现引用计数已经等于0了,这块空间需要释放回收了,回到最初的状态,于是变成下图的样子。 image.png 在这里简单说说内存泄漏的情形吧。 内存泄漏就是有些地址已经不使用了,但是依然有指针指向它导致这块地址空间不能释放。如下图所示: image.png 这是我自己的理解,如有不妥之处还请各位不吝赐教。如果您看到这篇文章,对您有一点点的帮助,将是我最开心的事!

优秀的个人博客,低调大师

Powershell AWS 自动化管理 (8) - CloudFront

这节来看看如何使用 PowerShell 在AWS里面创建CloudFront Distributions. CloudFront是AWS提供的CDN服务,允许创建一个分布点指向S3 或者Web server,各地的DNS会自动解析到最近的边缘服务器上,以便实现最佳访问速度。 具体的图像界面操作可以参考 http://beanxyz.blog.51cto.com/5570417/1532813 下面看看PowerShell如何操作。 首先需要有一个S3 bucket(前面已经创建过了),然后我上传一个图片做测试,记得把图片的访问权限设为公共可读 Write-S3Object-BucketNameyuanpicture-Key"1.jpg"-File"C:\Users\yli\OneDrive\Pictures\2010-09-28001\1.jpg" set-s3acl-BucketNameyuanpicture-Key"1.jpg"-PublicReadOnly get-s3object-BucketNameyuanpicture-Key1.jpg 直接访问看看没问题。 接下来我们需要设置一个cloudfront的分布点指向这个S3 Bucket 设置origin指向S3 Bucket,设置范围为全球,我还设置了一个别名test.beanxyz.com 因为他自动生成的域名实在是太长了 $origin=New-ObjectAmazon.CloudFront.Model.Origin $origin.DomainName="yuanpicture.s3.amazonaws.com" $origin.id="S3-yuanpicture" $origin.S3OriginConfig=New-ObjectAmazon.CloudFront.Model.S3OriginConfig $origin.S3OriginConfig.OriginAccessIdentity="" New-CFDistribution` -DistributionConfig_Enabled$true` -DistributionConfig_Comment"Testdistribution"` -Origins_Item$origin` -Origins_Quantity1` -DistributionConfig_CallerReferenceClient1` -DefaultCacheBehavior_TargetOriginId$origin.Id` -ForwardedValues_QueryString$true` -Cookies_Forwardall` -WhitelistedNames_Quantity0` -TrustedSigners_Enabled$false` -TrustedSigners_Quantity0` -DefaultCacheBehavior_ViewerProtocolPolicyallow-all` -DefaultCacheBehavior_MinTTL1000` -DistributionConfig_PriceClass"PriceClass_All"` -CacheBehaviors_Quantity0` -Aliases_Quantity1` -Aliases_Item"test.beanxyz.com" 执行命令以后,就开始创建了,大概15分钟后就能用了。 于此同时,在我godaddy的dns上我添加一个别名指向我的cloudfront 域名 等待5分钟之后,查看一下DNS 已经可以成功解析了 访问看看 成功!

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册