精华内容
下载资源
问答
  • 划分存储空间的基本方法
    千次阅读
    2022-03-05 21:56:40

    摘要

    作为团队架构师/技术负责人你该如何进行微服务的划分呢?在以前的文章中讨论过这个话题,可落地的DDD(4)-如何利用DDD进行微服务的划分(2),最近结合在不同的开发团队实践,又有了新的思考,相比较之前的基于DDD会更加全面可落地,也欢迎大家留言讨论。

    为何要划分微服务

    微服务架构被广泛用于互联网公司,其优势在于每个服务足够小,相互之间具备隔离性。配合一些基础设施,能够使得需求快速迭代上线。但是每个服务的粒度应该多大呢,服务之间的关系应该是怎样的呢?

    首先我们来探讨一下微服务划分的目标。微服务划分涉及到两个对象,一个是微服务,一个是开发人员。所以目标是高效有序将微服务及开发人员组织起来。

    如何衡量有序呢?

    1. 职责清晰
    2. 相互间的依赖关系清晰
      一个无序的微服务调用,会陷入混乱地狱。
      在这里插入图片描述

    因此制定一些标准

    横向
    按照业务流程拆,业务流程反映的是数据流程,数据从上游流下下游。上游需要和下游解耦,上游不可通过服务间调用下游。下游可以。

    纵向
    按照技术拆分,由上到下分为4层,上层可以调用下层,同级可以相互调用,下层强制不能调用上层。

    1. 应用系统
      面向各个端,比如pc端,面向用户的,面向小二的。app端。属于前端应用。

    2. 核心领域
      整个系统的核心业务,与业务紧密相连。支撑业务发展。

    3. 基础能力
      从核心领域中下沉抽象出来的更通用的服务,不只是服务当前业务。也服务于公司其他业务。

    4. 依赖系统
      一些通用的公共模块以及与其他兄弟部门的服务依赖。

    如此调用关系比较清晰了。
    在这里插入图片描述

    如何衡量高效呢?

    对于服务是性能高且稳定
    对于开发人员是效率高且有技术成长空间

    业务量上来一个,后端的很多工作就是围绕着性能和稳定,微服务的划分也深深影响着。因此服务划分还会按照

    1. 基于迭代频次
      变更是引发故障的主要原因,因此如果一个服务是稳定的,我们可以把他单独拆分为一个微服务,这样在项目快速迭代时,不会影响已有功能。不需要投入太多回归测试时间。

    2. 基于可靠性
      核心服务需要重点保障,流量高的应用和流量低的应用稳定性要求也不一样。
      可以将核心服务,流量高的应用单独拆出来,这样使得核心服务功能逻辑简单,依赖减少,存储独立。稳定性得到极大保障。

    3. 基于开发人员
      架构活动不仅要关心机器,还要关心人。开发人员的工作效率极大影响了业务的交付速度和质量。
      一个微服务需要一个唯一owner和2-3个开发人员(owner也参与开发)。owner是第一责任人,负责整个应用的代码质量,服务稳定性。2-3个人负责开发一个系统,不会有单点,在人员流动的情况能够进行相互补位,同时相互之间可以进行技术方案深度讨论,能够应对一定级别的复杂需求。人数不宜超过4个人,人太多,在同一个应用中开发不同的需求,可能每天都要处理不同的分支之间冲突,多套环境进行测试,效率比较低。同时人数太多,讨论效率也比较低。
      此外需要尽量保证每个中高级别的开发者都是一个微服务的owner,有自己的一块自留地,在需求承接之外,能够在做一些技术相关的开发工作。

    当然高效和有序并不总是统一的,有时候我们需要去做架构取舍。

    如何划分

    业务分析

    举个例子,比如你公司是做在线教育的,你入职负责开发公司的客户管理系统(CRM,下面统一用CRM代替)业务。首先你需要从全局分析CRM这块业务。

    流程

    CRM按照流程划分主要是获客-跟进-转化-签约-服务。按照领域进行抽象,可以分为售前,售中,售后。

    服务

    按照服务来划分,主要有投放服务、营销活动服务、呼叫服务、客户管理、日程管理、消息提醒、订单、合同、工单、销售效果分析。

    功能

    每个服务有更细粒度的功能。比如
    投放服务:提供多渠道投放方式,百度,头条,微信等,投放分析。
    营销活动服务:营销落地页,开学季优惠活动,抽奖活动,优惠券活动。
    客户管理服务:客户档案,销售机会,销售看板。
    其他不再赘述。

    人员

    目前业务还是在初级阶段,负责这块的开发总共有6人,3个后端,2个前端,一个测试。

    服务划分

    基于以上考虑,服务划分为以下6个服务。
    在这里插入图片描述

    考虑到只需要一个pc工作台,市场人员、销售人员都用同一个工作台,应用系统这一层不需要。
    然后核心领域分为售前(市场人员)、售中(客服,销售)、售后(客服,财务)三个服务,每个开发负责一个服务。同时抽象出3个通用基础能力服务,每个开发负责一个。

    1. 公司内部的账号系统
      提供统一的账号管理能力,组织架构能力,权限管理能力。

    2. 服务系统
      通用的一些工具能力,比如隐私号、坐席呼叫、待办、消息提醒等能力。这些并不属于同一个领域,但是考虑到当前阶段,服务不宜拆分的过细。所以都放在同一个服务中。

    3. 数据分析
      各个模块都需要数据分析,所以抽象出一个单独能力,统一处理。

    演进

    经过半年的发展,业务蒸蒸日上,需求越来越多。人员也在逐步扩展。后端人员扩大到了10人。原有的微服务架构逐渐不太适应。因此需要进行适当调整。经过分析,当前业务重点是

    1. 售前
      两个核心指标一个是有效线索量,一个是单个线索成本

    2. 售中
      售中决定了线索能否转化为订单。目前对应的运营人员最多,客服100人,销售300人。提高运营人员效率是重点。

    3. 售后
      工单响应时长

    售前这块基本系统功能已搭建完毕,通用的营销工具已经有了,市场人员可以进行组件组合,搭建不同营销页,然后根据投放效果进行适当调整。服务比较稳定了,所以这块有2个开发即可。主要负责营销工具开发。

    售后相对也比较稳定了,2个开发。
    售中是重点,需求迭代也比较多,6个开发。之前只有一个微服务,开发效率比较低了。需要进行适当拆分。增加3个服务

    1. 应用系统增加一个移动工作台
      因为销售人员经常在外部,所以需要移动端,而移动端通常是销售管理活动中的操作类功能。pc端则是查看分析。

    2. 核心领域层增加一个售中服务域

    售中拆成2个服务,一个是线索域,主要围绕着公海、私海,线索推荐。另外一个是服务域,是面向销售日常活动的。如活动,拜访,小记,客户标签等。

    1. 基础能力层增加一个流程引擎服务
      各个角色人员需要经常发起审批,流程编排,所以新构建一个基础能力,流程引擎。能够服务于整个crm业务,同时如果公司其他业务需要,可以提供给其他业务使用。
      在这里插入图片描述

    参考文章

    http://www.woshipm.com/pd/3983693.html

    更多相关内容
  • (1)在分页存储管理中,用户应将自己的程序划分成若干相等的页 (2)逻辑地址可有多少页 (3)一个作业最大的地址空间是多少字节 (2)如果加一个快表,且假定在快
  • 一般是先插上硬盘然后格式化硬盘(有数据的硬盘要做好备份),安装系统,在进创立存储池与存储空间(跟Windows电脑分区差不多)。下面我们就来看看群晖NAS如何创建存储池与存储空间的图文教程。群晖NAS创建存储池教程1、...

    新买Windows电脑需要在装系统前给电脑进行分区与硬盘格式化,然后装好系统就可以用了。群晖NAS因为是基于Linux开发的NAS网络存储服务器,所以流程跟Windows电脑不一样。一般是先插上硬盘然后格式化硬盘(有数据的硬盘要做好备份),安装系统,在进创立存储池与存储空间(跟Windows电脑分区差不多)。下面我们就来看看群晖NAS如何创建存储池与存储空间的图文教程。

    群晖NAS创建存储池教程

    1、首先登录NAS

    2、点击左上角的类似Windows的开始按钮,打开存储空间管理员

    1a9a46e0b6bae1d0672d44a53bf2774d.png

    3、新增存储池

    411fae408ce8c87216091192720d3d4c.png

    4、选择存储池类型--灵活性提高

    c366410fb5dcc0dcabf39667db2aab0b.png

    5、配置存储池属性,可做Raid5或Raid6,Raid6的安全性比Raid5的高,Raid6至少需要两个磁盘的空间

    543d837100d6531a4c0ea773f2fd08e3.png

    6、选择硬盘,一般全选

    612f16a18ecb1290573fc084cfc16ecd.png

    7、选择是否检查硬盘,选择“是”,会在建立存储空间的时候同时检查磁盘,花费的时间比较久,如果选择“否”,就直接建立空间时间比较短些,我们这里选择“否”(对于磁盘检查可以在完成存储空间建立再检查,最好能设定磁盘检查排程防范风险)

    c41b191fc0ab516ab392f2966e9a5ef9.png

    8、点击下一步,存储池建立完成

    群晖NAS 创建存储空间教程

    1、选择自定义模式,快速(建立SHR存储空间,群晖自己定义的一种存储模式,比较便于操作,多颗盘做SHR类似Raid1)  自定义 (选择自己需要的存储模式,含基本模式和多种Raid)

    64704b8dcaa93be4888296913556d230.png

    2、选择存储池--选择现有存储池

    1713a9dbef0b9b694ac4e84f07941528.png

    3、选择存储池

    5f9aa576bf79609745d94f7c3f191d62.png

    0c85fe2985235a9afb10fd6f34e38283.png

    4、配置存储空间容量

    c37dc716454af57312b02f2d124bf53b.png

    5、选择文件系统,推荐选择Btrfs文件系统,Btrfs支持快照功能

    ff48effd7e652924bc7d32fd53d954f9.png

    6、点击应用,等待他自动完成磁盘存储空间的建立

    557507e19edb3ebedf866430bc0a27ea.png

    只有正确安装好存储池与存储空间之后,你才可以通过群晖NAS的File Station存储或者访问数据文件,所以这个操作是必不可少的群晖NAS新机器安装步骤。

    展开全文
  • 针对平面散乱点集空间划分问题,提出了一种基于栅格统计的自适应空间划分算法。以栅格场为辅助手段为散乱点集建立空间索引,即判断各点与...实验与分析表明,该算法具有较高的计算效率,也不需占用太多额外的存储空间
  • 本节学习聚类分析,聚类属于无监督学习,其中聚类的方法有很多种常见的有K-means、层次聚类(Hierarchical clustering)、谱聚类(Spectral Clustering)等,在这里,上来不会直接介绍这些理论,需要一些基础知识...

    本节学习聚类分析,聚类属于无监督学习,其中聚类的方法有很多种常见的有K-means、层次聚类(Hierarchical clustering)、谱聚类(Spectral Clustering)等,在这里,上来不会直接介绍这些理论,需要一些基础知识铺垫,和前面一样,一上来就直接介绍聚类算法,显得太突兀,会简单介绍几种,然后重点介绍如何使用这些算法。

    在知乎看到这个图,挺好的:

    我们也按照这个来讲,只是讲的时候我会深入某个算法,把算法讲透:

    1定义

    聚类是数据挖掘中的概念,就是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。

    1.2.聚类与分类的区别

    Clustering (聚类),简单地说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了,因此 clustering 通常并不需要使用训练数据进行学习,这在Machine Learning中被称作unsupervised learning (无监督学习)。

    Classification (分类),对于一个classifier,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个 classifier 会从它得到的训练集中进行“学习”,从而具备对未知数据进行分类的能力,这种提供训练数据的过程通常叫做supervised learning (监督学习)。

    1.3.聚类的过程

    • 数据准备:包括特征标准化和降维;
    • 特征选择:从最初的特征中选择最有效的特征,并将其存储于向量中;
    • 特征提取:通过对所选择的特征进行转换形成新的突出特征;
    • 聚类(或分组):首先选择合适特征类型的某种距离函数(或构造新的距离函数)进行接近程度的度量,而后执行聚类或分组;
    • 聚类结果评估:是指对聚类结果进行评估,评估主要有3种:外部有效性评估、内部有效性评估和相关性测试评估。

    1.4. 衡量聚类算法优劣的标准

    • 处理大的数据集的能力;
    • 处理任意形状,包括有间隙的嵌套的数据的能力;
    • 算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序;
    • 处理数据噪声的能力;
    • 是否需要预先知道聚类个数,是否需要用户给出领域知识;
    • 算法处理有很多属性数据的能力,也就是对数据维数是否敏感。

    2.聚类方法的分类

    2.1.划分聚类方法

    给定一个n个对象的合集,划分方法构建数据的k个分区,其中每个分区代表一个簇,并且k《 n,也就是说把数据划分为k个组,使的每个组至少包含一个对象。换就话说就是划分方法在数据集上进行一层划分,典型的,基本划分方法采取互斥的簇划分,即每个对象的必须恰好属于一组。

    大部分划分方法是基于距离的,采用‘迭代的重定位技术’,例如k-均值和k-中心点算法

    2.1.1 k-均值聚类

         k-均值聚类的方式原理很简单,他是基于距离的,这个距离就是欧式距离,什么是欧式距离呢?其实他是我们二维和三维的距离的推广而已,例如在二维中有两点(2,3),(4,5)那么这两点的欧式距离就是:

                                            E = \sqrt{(2-4)^2 + (3-5)^2}

    在三维中的欧式距离为:两点(x1,y1,z1),(x2,y2,z2),则欧式距离为:

                                            E = \sqrt{(x1-x2)^2+(y1-y2)^2+(z1-z2)^2}

    欧式距离定义:

    这是维基给的欧式距离的定义,详情请参考维基百科的欧氏距离

    下面我们看看k-均值是如何工作的:

    这里先给出形式化的语言描述,然后给出算法过程。k-均值是基于形心的技术,基于形心的划分技术使用簇C_i的形心代表该簇,从概念上讲,簇的形心是他的中心点,形心可以用多种定义的方法,例如用分配给该簇的的对象(或点)的均值或中心点定义(其中均值就是k-均值为定义的,而中心就是k-中心定义的)。对象p\epsilon C_i与该簇的代表C_i之差用dist(p,c_i)度量,其中dist(p,c_i)是两个数据点的欧式距离,簇C_i的质量可以用簇内的变差来度量,他是C_i中所有对象和形心c_i之间的的误差平方和(距离平方和),定义为:

                                                                    E = \sum_{i=1}^{k}\sum_{p\epsilon c_i}dist(p,c_i)^2

    其中,E是数据集中的所有对象的的误差平方和;p是空间的数据点,ci是簇C_i的的形心,此时只要优化E,使E最可能的小,得到的簇将越紧凑。

    k-均值的工作过程:

                 k-均值把簇的形心定义为簇内点的均值,他的处理流程如下,首先,在数据集D中随机的选择K个对象,每个对象代表代表一个簇的初始均值或者中心,对剩下的每个对象,根据与各个簇中心的的欧氏距离,将他分配到最相似的的簇,最相似其实就是距离形心最近的欧式距离了。簇中每加入一个对象就重新计算簇的均值距离,然后把中心更新为该均值。下面给出伪代码:

    我们来看一下聚类的过程:

    k-means的k就是最终聚集的簇数,这个要你事先自己指定。k-means在常见的机器学习算法中算是相当简单的,基本过程如下:

    • 首先任取k个样本点作为k个簇的初始中心;
    • 对每一个样本点,计算它们与k个中心的距离,把它归入距离最小的中心所在的簇;
    • 等到所有的样本点归类完毕,重新计算k个簇的中心;
    • 重复以上过程直至样本点归入的簇不再变动。

    k-means聚类分析的原理虽然简单,但缺点也比较明显:

    • 首先聚成几类这个k值你要自己定,但在对数据一无所知的情况下你自己也不知道k应该定多少;
    • 初始质心也要自己选,而这个初始质心直接决定最终的聚类效果;
    • 每一次迭代都要重新计算各个点与质心的距离,然后排序,时间成本较高。

    值得一提的是,计算距离的方式有很多种,不一定非得是笛卡尔距离;计算距离前要归一化。

    2.1.2.k-中心:

    k-中和k-均值很像,不同的是形心的更新选择,k-均值是按照欧式距离的均值进行更新形心的,而k-中心是按照真实的数据点进行更新的,遍历所有的数据点,找到误差平方和最小的那个中心点为数据中心点。

     

    2.2. 层次聚类方法

    层次聚类,是一种很直观的算法。顾名思义就是要一层一层地进行聚类,可以从下而上地把小的cluster合并聚集,也可以从上而下地将大的cluster进行分割。似乎一般用得比较多的是从下而上地聚集,因此这里我就只介绍这一种。

    所谓从下而上地合并cluster,具体而言,就是每次找到距离最短的两个cluster,然后进行合并成一个大的cluster,直到全部合并为一个cluster。整个过程就是建立一个树结构,类似于下图。

    那 么,如何判断两个cluster之间的距离呢?一开始每个数据点独自作为一个类,它们的距离就是这两个点之间的距离。而对于包含不止一个数据点的 cluster,就可以选择多种方法了。最常用的,就是average-linkage,即计算两个cluster各自数据点的两两距离的平均值。类似的 还有single-linkage/complete-linkage,选择两个cluster中距离最短/最长的一对数据点的距离作为类的距离。个人经 验complete-linkage基本没用,single-linkage通过关注局域连接,可以得到一些形状奇特的cluster,但是因为太过极 端,所以效果也不是太好。

    层 次聚类较大的优点,就是它一次性地得到了整个聚类的过程,只要得到了上面那样的聚类树,想要分多少个cluster都可以直接根据树结构来得到结果,改变 cluster数目不需要再次计算数据点的归属。层次聚类的缺点是计算量比较大,因为要每次都要计算多个cluster内所有数据点的两两距离。另外,由 于层次聚类使用的是贪心算法,得到的显然只是局域最优,不一定就是全局最优,这可以通过加入随机效应解决,这就是另外的问题了。

    下面给出,数据挖掘概念与技术的定义:

     

     具体的详情请参看数据挖掘:概念与技术 ,这本书对聚类讲的很透彻。此书还介绍了层次聚类的BIRCH(利用层次结构的平衡迭代规约和聚类)、Chameleon(使用动态建模的多阶段聚类)、概率层次聚类等

    2.3.基于密度的方法

             划分和层次的方法旨在发现球状簇,他们很难形成任意形状的簇,因此无法根据数据的特征进行聚合,为了发现任意形状的簇,我们可以把簇看做数据空间中被稀疏区域分开的稠密区,这就是基于密度聚类的方法的主要策略,为了简单明了,我们先根据例子进行讲解概念:

    首先需要解决的问题就是如何建立一个标准来去发现数据稠密区区域即什么是根据密度进行聚类?

    假设有一个对象o(数据),他的密度可以使用靠近o的数据的数量度量,那么这个数量是如何怎么确定,有什么依据呢?

    这里以DBSCAN(具有噪声应用的基于密度的空间聚类)为例:

    DBSCAN的领域对象的确定是指一个用户指定的参数\varepsilon >0用来指定每个对象的领域半径。对象o的\varepsilon领域是以o为中心,以\varepsilon为半径的空间,空间的大小用户可以设定,好空间大小确定了,那么密度上面是通过临近的数据个数进行确定,但是为多少合适了?这个用户可以根据实际情况设定,那么DBSCAN为用户提供了一个参数MinPts来指定稠密区的密度阈值。那么也就是说一个对象的\varepsilon的领域至少包含MinPts个对象称为核心对象,核心对象是稠密区的支柱,下面还有一些名词,这里就在例子中介绍,我们根据例子在理解一下:

    我们先看看图左的部分,上面我们定义了一个DBSCAN的两个参数,假如\varepsilon是上图圆的半径,MinPts=3,这也就是只要园内的数据点数至少为c个,则以这个数据为圆心的数据即为核心对象,例如上图的m、p就是核心对象,而q就不是核心对象,因为q的领域内没达到 MinPts=3的要求,因此不是核心对象,这里的核心对象也是核心数据的意思,我们知道m,p都满足核心对象,那么核心对象的数据点称为该核心对象直接密度可达,例如m,q,而m、p是彼此的密度包含,我们称m,p为直接密度可达,而p,q称为间接密度可达,类似的r和s 是密度可达的,而o是从r密度可达的,因此o,r和s都是密度相连的,这就是密度的来源了,我们把使用密度相连的的闭包来发现联通的稠密区作为簇。

    下面给出伪代码:

     

    其他的密度聚类方法请参考数据挖掘概念与技术。

    好,这节就到这里,这些是纯理论,以后遇到聚类项目在贴代码。 

    展开全文
  • 【Mac篇】如何释放Mac上的存储空间

    千次阅读 2020-10-15 10:02:36
    本文介绍了如何手动清理并释放 Mac 上的存储空间,纯小白教学。

    前言

        本专栏专门记录使用 MacOS 时的小技巧,以及装软件、配环境时遇到的一些坑,希望能对使用 Mac 系统的小伙伴们有帮助。


        相信对于大部分人来说,使用 Mac 电脑基本不会借助第三方工具来清理电脑的存储空间,本文介绍了如何手动清理并释放 Mac 上的存储空间。

    找出Mac上有多少可用的存储空间

    • 1)选取“苹果菜单 ” ->

    • 2)选取“关于本机” ->

    • 3)选取“储存空间”

        这个长条中的每个分段分别代表一类文件所用储存空间的估计值。将指针移到每个分段上方可查看更多详细信息。

    管理Mac上的存储空间

        点击“管理”按钮,即可打开“存储空间管理”窗口。

        从“存储空间管理”中,可以详细的看到各个部分所占存储空间的大小,这也是我们删除东西的重要依据。
        “存储空间管理”窗口提供了有关优化存储空间的建议。

    • 1)“储存在 iCloud 中”。

    • 2)“优化存储空间”。点击“优化”后,当需要存储空间时,通过移除您已看过的 iTunes 影片和电视节目以及仅在这台 Mac 上保留最近电子邮件的附件来节省空间。

    • 3)“自动清倒废纸篓”。会永久删除“废纸篓”中保留时间超过30天的文件。

    • 4)“避免杂乱”。点击“检查文件”后,可以从边栏选取任意文件,如“应用程序”、“文稿”、“音乐创作”或“废纸篓”等。可直接从这个窗口删除某些类别的文件。

    手动释放存储空间

    清空废纸篓

        定期清空废纸篓是释放存储空间的好方法。可以设置“废纸篓”仅保留30天以内的文件。清除方法就不再一一阐述。

    • command + delete:将文件移至“废纸篓”。

    • command + shift + delete:立即删除,不能撤销此操作。

    清除文稿中不用的大文件

        在“存储管理空间”中,点击“文稿”,即可查看本机中的“大文件”、“下载项”和“文件浏览器”,寻找不要的文件,点击右下方的“删除”,即可移至“废纸篓”。

    清除没用的应用程序

        在“存储管理空间”中,点击“应用程序”,即可移除本机下载的应用来释放存储空间。

    清除没用的照片和iTunes里的文件

        在“存储管理空间”中,点击“照片”和“iTunes”,即可清除没用的照片和音乐。

    清除QQ和微信里的缓存文件

        QQ和微信里缓存文件也是清理文件过程中不可忽视的一部分。


    QQ清理方法:

    • 1)点击QQ的“偏好设置” ->

    • 2)点击“功能” ->

    • 3)点击“图片和缓存清理”

    微信清理方法:

    • 1)点击微信的“偏好设置” ->
    • 2)点击“通用” ->
    • 3)点击存储空间的“前往清理”

    清除系统中的缓存文件和日志文件

        “系统”主要由几部分组成:系统自带应用程序包及缓存日志、配置文件、其他应用的配置文件。

    • 系统自带程序:如“邮件”、“词典”、“预览”等应用对应的缓存、日志及支持配置文件等。
    • 其他应用文件:系统默认将应用运行所需的支持文件、数据文件、缓存文件归类在“系统”模块中,这是造成“系统”模块磁盘占用高的最主要的原因。

        在应用文件中,一部分文件是缓存及日志文件。缓存文件主要用来提高应用的执行速度,日志主要用来记录应用运行时操作行为、崩溃信息等,清除这两类不会对 Mac 的正常运行造成太大的影响,可放心清理。另一部分重要且占用空间高的即是各款应用的支持文件、数据文件等,一般放置在“资源库”文件中,如果没有特殊的清理机制,这部分文件将是“系统”占用高的元凶。

    • 系统及其他第三方下载的应用的缓存保存在:~/Library/Caches

    • 系统及其他第三方下载的应用的日志保存在:~/Library/Logs

    • App Store下载应用的缓存文件:~/Library/Containers/com.xx.xx(应用名称)/Data/Library/Caches

    • App Store下载应用的日志文件:~/Library/Containers/com.xx.xx(应用名称)/Data/Library/Logs

        在“系统”中,各应用的缓存文件及日志文件可放心清理,找到对应的目录直接删除即可;而应用的其他文件,在磁盘空间不够时,可选择清除数据文件。

        命令行输入 sudo du -sh * :可查看当前文件夹下各个文件和文件夹所占的空间大小,进而一步步找到占用磁盘空间较多的文件。
         command + J :打开“计算所有大小”,即可在查看文件夹下各个文件和文件夹所占的空间。

    前往资源库(Library)的方法

    方法1:
        在“访达”窗口上,按下 option,点击“前往”,即可看到“资源库”。


    方法2:

    • 1)command + 空格 ->
    • 2)输入 ~/Library


    方法3:
        打开命令行,输入 open ~/Library,即可打开资源库

    方法4:

    • 1)鼠标点击一下桌面 ->
    • 2)按下 command + shift + G 前往文件夹 ->
    • 3)输入 ~/Library

    清除无法通过“存储空间管理”删除的邮件

        直接前往 ~/Library/mail/,直接在里面删除不要的邮件即可。

    清除Xcode缓存相关文件

        对于开发者来说,清清 Xcode 缓存,能腾出大量的空间。

    • 1)Xcode缓存文件——选删

    必要性:重新运行时候,再次生成。平时不用管它。
    地址:~/Library/Caches/com.apple.dt.Xcode

    • 2)Xcodeipa 包的历史记录 xcarchive 文件——选删

    必要性:此文件在线上运营的app不同版本的BUG追踪,配合dSYM工具进行定位分析有重要作用,一般可以删除。
    地址:~/Library/Developer/Xcode/Archives

    • 3)模拟器运行程序产生的数据(DerivedData)——无顾忌删

    必要性:可以全部删除。
    地址:~/Library/Developer/Xcode/DerivedData

    • 4)Xcode 打包产生的 app icon 历史版本(Products)——无顾忌删

    必要性:可以全部删除。
    地址:~/Library/Developer/Xcode/Products/

    • 5)插件(Plugg-ins)——无顾忌删

    必要性:Xcode8以后封禁了插件,有的话也是无效的了,可以完全删除。
    地址1:~/Library/Developer/Xcode/Plug-ins
    地址2:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins

    • 6)XCPGDevices(playground项目缓存)——无顾忌删

    必要性:类似二的DerivedData,可以完全删除。
    地址:~/Library/Developer/XCPGDevices/

    • 7)设备支持文件(DeviceSupport)——选删

    必要性:比较老的,如iOS8.0之前的都可删了;超出当前Xcode对应版本的,不建议删。
    地址:~/Library/Developer/Xcode/iOS DeviceSupport

    • 8)模拟器文件——选删

    必要性:删除之后可以重新下载。
    地址:~/Library/Developer/CoreSimulator/Profiles/Devices/

    • 9)证书描述文件——不必要删

    必要性:占据空间很小,安装证书比较多,手动打包调试或者配置证书时选择性删除。
    地址:~/Library/MobileDevice/Provisioning Profiles

    参考博客

    版权声明:本文为晨旭OvO原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/a1228136188/article/details/109091114

    展开全文
  • 基本分段存储管理方式详解

    千次阅读 2022-03-11 14:10:52
    4.4 基本分段存储管理方式 一、分段存储管理方式的引入 二、分段系统的基本原理 三、信息共享 四、段页式存储管理方式
  •  设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048字节,内存总共有8个存储块,试问逻辑地址至少应为多少位?内存空间有多大?  答:2的4次方=16,所以页号占4位,页长为2048=2的11次方,...
  • 我们在上篇文章已经对比了不同的存储系统之间的区别,本章开始逐步深入记录Ceph的学习和运用。 开源分布式存储系统的对比 Ceph简介 Ceph是一个分布式存储系统,提供对象,块和文件存储,是一个免费开源软件的存储...
  • 基本分页存储管理方式

    千次阅读 2020-09-28 22:26:10
    因此提出非连续分配管理方式,非连续分配管理方式分为: 基本分页存储管理方式 基本分段存储管理方式 段页式存储管理方式 页面与物理块 分页存储管理将进程的逻辑地址空间划分成若干个大小相等的区域,称为页或页面...
  • 一、外存分配方式 二、储空间管理
  • 基本分段存储管理方式

    千次阅读 2018-11-25 12:58:08
    一、分段系统的基本原理 1、程序通过分段(segmentation)划分为多个模块,每个段定义一组逻辑信息。如代码段(主程序段main,子程序段X)、数据段D、栈段S等。 2、每段有自己的名字(一般用段号做名),都从0编址,可...
  • 浅谈进程地址空间与虚拟存储空间

    万次阅读 多人点赞 2015-04-17 19:35:47
    早期的内存分配机制 在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存...下面通过实例来说明当时的内存分配方法: 某台计算机总的内存大小...
  • 云计算云存储的一些基本概念

    万次阅读 多人点赞 2018-04-12 20:10:04
    我们在学习云计算和云存储之前,需要先了解一些很常见的基本概念,否则在学习过程中和选型时会比较晕。 云计算的三种服务模式:IaaS,PaaS和SaaS 云的分层 任何一个在互联网上提供其服务的公司都可以叫做云计算...
  • 存储基本概念(lun,volume,HBA,DAS,NAS,SAN,iSCSI,IPSAN)

    万次阅读 多人点赞 2015-05-05 19:07:46
    磁盘阵列上的硬盘组成RAID组后,通常连接磁盘阵列的服务器并不能直接访问RAID组,而是要再划分为逻辑单元才能分配给服务器。这是因为SCSI总线上可挂接的设备数量是有限的,一般为8个或者16个,我们可以用Target ID...
  • 博文目录一、运行时数据区域二、线程隔离的数据区1、程序计数器2、虚拟机栈3、本地方法栈三、所有线程共享的数据区1、 Java 堆2、方法区运行时常量池 一、运行时数据区域 二、线程隔离的数据区 1、程序计数器 线程...
  • 第四章存储管理 页式存储管理 页式虚拟存储技术 段式存储管理 分区存储管理的缺点 "碎片问题 原因:作业要求连续的存储空间 解决办法:允许作业占据不连续的空间 基本原理 "等分内存 把内存划分为大小相同的块 把用户...
  • 决策树:特征分布空间划分方法

    千次阅读 2014-03-25 14:10:23
    如何快速而准确地找到查询点的近邻,不少人提出了很多高维空间索引结构和近似查询的算法。 一般说来,索引结构中相似性查询有两种基本的方式: 一种是范围查询,范围查询时给定查询点和查询距离阈值,从数据集中查找...
  • 看完记得一键三连哦,微信搜索【沉默王二】关注这个沉默...在整个执行的过程中,JVM 会用一块空间存储程序执行期间需要用到的数据,这块空间一般被称为运行时数据区,也就是常说的 JVM 内存。 所以,当我们在谈 JVM .
  • 基本属性:图像亮度,对比度,色彩饱和度,清晰度(锐度) 色阶:曝光、高光、阴影 颜色:色温、色调 . 1、图像亮度来源于:OpenCV改变图像或视频的亮度 改变亮度是在每个像素上的点操作。如果想提高亮度,必须
  • Delegate 可以很方便把目标动作的执行过程划分为多个方法,以展现不同时间节点下特定的操作;Block 则擅长处理一个回调多个落点的情况,并且它可以通过捕捉上下文信息,来达到减少创建额外变量,集中消息处理逻辑的...
  • 参考视频:传送门 非连续内存分配 为什么需要非连续内存分配?...1、一个程序的物理地址空间是非连续的 2、更好的内存利用和管理 3、允许共享代码和数据 4、支持动态加载和动态链接 非连续分配内存...
  • Java的8种基本数据类型

    千次阅读 2021-12-10 21:42:53
    并指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小 ·整型:byte short int long ·浮点型:float double ·字符型:char ·布尔类型:boolean byte: 8位,最大存储数据量是255,存放的数据范围是-...
  • Java内存划分和分配

    万次阅读 2018-10-18 15:03:41
    综述 在这边文章中我们将了解一下Java的内存区域是怎么划分的以及每个区域的...首先通过一张图来看一下Java虚拟机是如何划分内存空间的。 程序计数器:是一块较小内存,可以看作是当前线程所执行的字节码的行号指示...
  • java虚拟机在执行java程序的过程中会把它所管理的内存划分成若干个不同的数据区域。这些区域各有用途,以及创建和销毁的时间。有的区域随着虚拟机的进程的启动而存在,有的则依赖用户线程的启动和结束而建立和销毁。...
  • 数据库存储方法

    千次阅读 2017-08-30 11:14:29
    在数据库中,有两种数据存放方法: 1、堆:数据按照向后插入的方法,一直堆积在文件末尾,使用...性能得到部分提升),由于没有填充因子,在相同压缩算法下,空间能得到很大的节省,堆表很适合于顺序范围访问,如数据
  • 1.基本原理 内存被划分成大小固定相等的块(Frame 帧、页框、主存块),且块相对比较小。 每个进程装入时被分成同样大小的页(Page)一页装入一帧 整个进程被离散装入到多个不连续的帧 下面来看一个分页存储管理的例子...
  • 内部存储空间 手机存储空间 sd卡

    千次阅读 2015-10-16 15:49:08
    有些手机(如MTK平台)分内部存储空间和手机存储空间,据说内部存储空间只是给装软件用的,而手机存储空间类似内置的SD卡,这样分经常导致安装软件时,明明有空间,但是还是装不下。请问为什么要这样分呢?有什么...
  • Android文件存储

    千次阅读 2015-08-14 11:42:03
    Android文件系统跟其他平台基于磁盘...这篇教程将演示如何在App中执行基本的文件操作,并假设读者对Linux文件系统和Java标准的文件输入输出有一定基础。 选择内部存储还是外部存储 所有的Android设备都将文件存储区域
  • 3.1.4.1 基本分页存储管理方式

    千次阅读 2016-07-13 23:58:02
    分页存储管理方式中,又根据运行作业时是否要把作业的所有页面都装入内存才能运行分为基本分页存储管理方式和请求分页存储管理方式。 1、基本分页存储管理方式 固定分区会产生内部碎片,动态分区会产生外部碎片,这...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 190,275
精华内容 76,110
热门标签
关键字:

划分存储空间的基本方法