草庐IT

碎片化

全部标签

云原生周刊 | 开源领导者应该如何应对碎片化挑战?

LinuxFundation发布了一份关于开源开发中的碎片化问题的报告《实现全球协作:开源领导者如何应对碎片化挑战》,该报告由华为在美国的研发部门Futurewei赞助。报告指出,虽然开源社区越来越国际化,但美国对开源共享和开发进行了过多的干预。同时报告里还提到了中国,随着中国提升其软件实力的需求越来越强烈,中国对开源项目的参与度将在未来几年内大幅提升。?报告链接:https://www.linuxfoundation.org/research/open-source-fragmentation文章推荐使用AWSlambda和ChatGPT来自动回复邮件本文介绍了如何使用AWSLambda函数

Redis内存碎片和Pipeline管道

本文已收录至Github,推荐阅读?Java随想录微信公众号:Java随想录目录内存碎片内存碎片如何产生的?内存分配器怎么看是否有内存碎片?碎片率的意义?清理内存碎片低于4.0-RC3版本的Redis高于4.0-RC3版本的RedisPipeline管道为什么需要Pipeline原生批命令(mset,mget)与Pipeline对比Pipeline的优缺点一些疑问相关代码内存碎片内存碎片如何产生的?Redis内部有自己的内存分配器,默认是jemalloc,为了提高内存使用的效率,来对内存的申请和释放进行管理。而内存分配器按照固定大小分配内存,并不是完全按照程序申请的内存大小来进行分配。比如程序

Redis内存碎片和Pipeline管道

本文已收录至Github,推荐阅读?Java随想录微信公众号:Java随想录目录内存碎片内存碎片如何产生的?内存分配器怎么看是否有内存碎片?碎片率的意义?清理内存碎片低于4.0-RC3版本的Redis高于4.0-RC3版本的RedisPipeline管道为什么需要Pipeline原生批命令(mset,mget)与Pipeline对比Pipeline的优缺点一些疑问相关代码内存碎片内存碎片如何产生的?Redis内部有自己的内存分配器,默认是jemalloc,为了提高内存使用的效率,来对内存的申请和释放进行管理。而内存分配器按照固定大小分配内存,并不是完全按照程序申请的内存大小来进行分配。比如程序

Android 9 用户比 Android 12 多,系统碎片化问题依旧严重

Android系统的碎片化是Google过去几年一直在努力改善的问题,虽然Google每年都会带来新版本的Android系统,但积极响应的厂商相对较少,这就导致了只有少数知名公司的主流产品可以得到升级,加剧了碎片化程度,也让得不到升级的设备暴漏出更多漏洞。过去几年时间,Google时不时也会分享Android操作系统的每个不同版本的全球使用情况的一些数据,展示Google为解决这个问题所作出的一些成果。但这些数据也曾被苹果引用,在发布会上用来对比iOS和Android之间系统升级比例差异,“嘲笑”Android碎片化严重、升级速度缓慢,潜在的安全风险也更大。根据AndroidStudio中的A

Android 9 用户比 Android 12 多,系统碎片化问题依旧严重

Android系统的碎片化是Google过去几年一直在努力改善的问题,虽然Google每年都会带来新版本的Android系统,但积极响应的厂商相对较少,这就导致了只有少数知名公司的主流产品可以得到升级,加剧了碎片化程度,也让得不到升级的设备暴漏出更多漏洞。过去几年时间,Google时不时也会分享Android操作系统的每个不同版本的全球使用情况的一些数据,展示Google为解决这个问题所作出的一些成果。但这些数据也曾被苹果引用,在发布会上用来对比iOS和Android之间系统升级比例差异,“嘲笑”Android碎片化严重、升级速度缓慢,潜在的安全风险也更大。根据AndroidStudio中的A

深入分析Redis内存碎片

​前言我们先来看一个问题,假设Redis实例保存了5GB的数据,现在删除了2GB的数据,那么Redis进程占用的内存会不会减少呢?答案是:它可能仍然占用大约5GB内存,即使Redis数据只占用大约3GB。如果maxmemory不设置该参数,Redis不会触发内存淘汰策略删除数据。Redis会继续为新写入的数据分配内存。分配失败会导致应用程序报错,当然不会导致宕机。注:设置maxmemory​参数,执行命令CONFIGSETmaxmemory100mb​,或在redis.conf 配置文件中设置maxmemory100mb。使用top命令查看数据是否已经删除,为什么它仍然占用这么多内存?释放的内

深入分析Redis内存碎片

​前言我们先来看一个问题,假设Redis实例保存了5GB的数据,现在删除了2GB的数据,那么Redis进程占用的内存会不会减少呢?答案是:它可能仍然占用大约5GB内存,即使Redis数据只占用大约3GB。如果maxmemory不设置该参数,Redis不会触发内存淘汰策略删除数据。Redis会继续为新写入的数据分配内存。分配失败会导致应用程序报错,当然不会导致宕机。注:设置maxmemory​参数,执行命令CONFIGSETmaxmemory100mb​,或在redis.conf 配置文件中设置maxmemory100mb。使用top命令查看数据是否已经删除,为什么它仍然占用这么多内存?释放的内

DDD碎片记录 09. 仓库和工厂

上一篇说的聚合,通过聚合设计可以真实的反应现实世界的状况,提高软件设计的质量,有效降低维护变更的成本。仓库+工厂将聚合真正落实到软件设计中,要需要另外两个重要概念:仓库,工厂。举个例子:创建一个订单,订单中包含了多个订单明细,并且将他们做成了一个聚合。这是,当订单完成了创建,就需要保存到数据库中。需要同时保存订单,订单明细表,并且做到一个事物中。问题:谁来负责保存数据入库,并对其添加事物呢?贫血模型步骤如下通过订单dao与订单明细dao去完成db的保存,由订单service添加事物缺点:没有聚合,缺乏封装,不利于日后维护聚合设计如下:订单与订单明细的保存的实现封装到订单仓库中,(DDD的设计通

DDD碎片记录 09. 仓库和工厂

上一篇说的聚合,通过聚合设计可以真实的反应现实世界的状况,提高软件设计的质量,有效降低维护变更的成本。仓库+工厂将聚合真正落实到软件设计中,要需要另外两个重要概念:仓库,工厂。举个例子:创建一个订单,订单中包含了多个订单明细,并且将他们做成了一个聚合。这是,当订单完成了创建,就需要保存到数据库中。需要同时保存订单,订单明细表,并且做到一个事物中。问题:谁来负责保存数据入库,并对其添加事物呢?贫血模型步骤如下通过订单dao与订单明细dao去完成db的保存,由订单service添加事物缺点:没有聚合,缺乏封装,不利于日后维护聚合设计如下:订单与订单明细的保存的实现封装到订单仓库中,(DDD的设计通

DDD碎片记录 01.落地到数据库设计

系统用例设计,分析系统需要完成的功能。分析系统的业务实体,在领域模型分析中采用类图的形式,每个类可以通过其属性来表述数据结构,又可以通过添加方法来描述对数据结构的处理。因此在领域模型的设计过程中,即完成了对数据结构的梳理,也确定了系统对这些数据结构的处理。该过程的核心是领域模型的设计,这样可以知道系统的数据库模型设计与程序设计数据库设计会弱化成领域对象持久化设计的一种实现方式。什么叫领域对象的持久化:系统运行的过程中,所有数据都是以领域对象的形式存在的插入记录:创建一个领域对象更新记录:根据key修改领域对象删除数据:销毁领域对象多对多关系典型案例:用户角色权限角色-功能关联类