内存 模式
设计模式7大原则
开闭原则对扩展开放,对修改关闭。 依赖倒置原则面向接口编程。 单一职责原则一个类、接口、方法只负责一项职责。 接口隔离原则接口中方法尽量少。 迪米特法则尽量降低类与类之间的耦合。 里氏替换原则引用父类的地方能使用其子类。 合成复用原则尽量使用合成/聚合的方式,不是使用继承。 ......
使用设计模式改写if/else或switch/case语句
在写代码的时候,经常会用到if/else语句或者switch/case语句。虽然很省事,但是没有体现到java的封装、继承、多态等特性。没有用到java的面向对象编程的精髓。 比如这种if/else语句: String str = "菠萝"; if ("苹果".equals(str)) { Syst ......
看懂FTP的主动和被动模式
FTP只通过TCP连接,没有用于FTP的UDP组件,FTP不同于其他服务的是它使用了两个端口,一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了。更多技术干货详见www.linuxprobe.com ......
从DevOps实践落地的角度谈谈“流程”和“规范"的反模式
最近在经历的一些事情,让我突发灵感,觉得要写点关于DevOps体系建设过程中的“流程规范”,记录下来。 如何解读"流程规范" 谈到DevOps落地,无一例外都会提“流程规范“,我想没有人会反对,甚至会”不放在眼里“,因为概念本身没有什么晦涩难懂。可是一到落地,好像就是另外一番场景,“一地鸡毛”,“形 ......
linux 内存盘的使用方式与验证
linux 内存盘的使用方式与验证 背景 某些情况下, 硬盘的写入是一个很大的瓶颈 使用 内存文件系统的方式应该能够极大的提高IO的速度. 内存盘的优点是比较快, 缺点就是数据不是持久化的. 其实还是有很多可以持续优化的方式与方法的. 可以最大化的 磁盘的IO速度等. 内存盘的多种模式与区别 ram ......
spring依赖注入单例模式下(默认都是单例),类变量(实例变量)线程安全问题
java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。Java的变量类型有: 成员变量类中的变量(独立于方法之外的变量) 局部变量类的方法中的变量。而 java类的成员变量又有俩种: 静态变量(类变量): 独立于方法之外的变量,用 static 修饰。 实例变量: 独立于方法之外 ......
iOS开发实战-仿小红书App开发-2-项目总体设计,TabBarController,启动页,深色模式
1.新建一个LittlePink项目 完成一些配置. 2.在Main中新增一个Tab Bar Controller. 把箭头给TbaBar Controller. 除了原有的一个ViewController外,再拉两个ViewController,使Main中共有5个ViewController. ......
虚拟内存如何与物理内存映射
转自 https://www.cnblogs.com/binlovetech/p/17571929.html 笔者之前在自己的专栏《聊聊 Linux 内核》 里通过大量的篇幅写了一个系列关于内存管理相关的文章,在这个系列文章中,笔者分别通过虚拟内存管理和物理内存管理两个角度算是把 Linux 内存管 ......
工厂模式之工厂方法模式
大家好,欢迎来到程序视点! 前言 在上一节的简单工厂模式中,我们知道简单工厂所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。 也就是说,类的创建依赖工厂类,如果想要拓展程序(添加新的类),必须对工厂类进行修改。这违背了开闭原则。 从设计角度考虑,有一定的问题,如何解决? 既 ......
设计模式 C++
(设计模式) (李建忠 C++) 23种设计模式 组件协作 模板方法 父类中定义组件(函数)的调用流程,每个组件使用虚函数进行实现,然后子类中可以重写父类中虚函数的实现。 如果我们发现一个算法的组件(函数)的调用流程都是一样的,但是步骤中的各个组件的实现可能有所差异,此时会使用模板方法。 【注】稳定 ......
less-匹配模式
//匹配模式 有点像函数重载 .arrow { width: 0; height: 0; overflow: hidden; border-width: 10px; border-color: transparent transparent limegreen transparent; border ......
软件设计模式系列之六——单例模式
单例模式(Singleton Pattern)是一种常见的创建型设计模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点来获取该实例。这意味着无论何时何地,只要需要该类的实例,都会返回同一个实例,而不是创建多个相同的实例。 ......
单例模式
Analyser* Analyser::Instance() { static QMutex mutex; static QScopedPointer<Analyser> inst; if (Q_UNLIKELY(!inst)) { mutex.lock(); if (!inst) { inst.r ......
如何在linux的环境中,创建swap内存?
背景说明 swap内存是系统中的临时内存,或者说,用磁盘的文件空间,当做物理内存来使用。主要是,为了解决一些系统,物理内存不够的情况,可以用swap内存作为一些补充。 但是要注意,swap内存的效率是非常的低的,如果应用对内存有足够的需求,可以考虑增加物理内存来提升性能。 通过下面的内容,你将会知道 ......
Day_9.15_单例设计模式
单例设计模式 23种 设计模式概述 何为单例模式 实现思路 单例模式的两种实现方式 < 饿汉式 < 懒汉式 饿汉式vs懒汉式 main() ......
桥接模式
桥接模式 案例引入 对不同的手机类型和不同品牌实现操作(如开机,关机,上网,打电话等)。 如手机的类型有折叠式,直立式等。手机品牌有华为,小米,vivo等。 传统方式实现案例UML图 传统方式问题分析 1.扩展性问题,如果再增加手机的样式,就需要增加各个品牌手机的类,同样我们如果增加一个手机品牌,也 ......
常用设计模式
一、工厂模式 + 单例模式 使用工厂模式来创建对象,通过单例模式来保证该工厂只有一个实例,从而减少创建对象时的开销。 首先,创建一个工厂类,该类使用单例模式来保证只有一个实例,该实例负责创建对象。然后,根据需要创建多个工厂方法,每个方法用于创建不同的对象。 class SingletonFactor ......
docker shm,共享内存出问题
BUS error encountered in DataLoader worker. This might be caused by insufficient shared memory (shm), please check whether use_shared_memory is set an ......
软件设计模式系列之五——建造者模式
建造者模式是一种对象创建型设计模式,它将一个复杂对象的构建过程与其表示分离。这意味着你可以使用相同的构建过程来创建不同类型的对象,而不必关心每个对象的内部细节。 ......
内存OOM机制
目录OOM原理简介内核参数简介panic_on_oomoom_kill_allocating_taskoom_scoreoom_adjoom_score_adjoom_dump_tasks测试方法测试思路测试用例 OOM原理简介 当系统发生OOM的时候,根据panic_on_oom配置,走系统奔溃还 ......
top命令res升高,内存泄露,cpu飙高排查方法
Jconsole:可以直观查看堆内存,堆外内存的使用情况,在jdk的bin目录下 如果内存持续上涨,且gc后下降较少,可以确定存在内存泄漏,再使用visualvm/MemoryAnalyzer确定内存泄漏位置 MAT的使用: 先生成dump文件,命令: jmap -dump:live,file=09 ......
2023-04-26-微信安全模式下消息解析
在微信公众号的使用过程中,为了提高信息传输的安全性,可以在服务器配置中将消息加解密模式指定为安全模式。 启用安全模式后,公众号主动调用API的情况并不会受影响,只有被动回复用户的消息时才需要对消息进行加解密。 官方提供了5种开发语言的示例代码,参照官方给的C++示例代码,本文给出go语言的解密实现: ......
JointJs - Link 的路由模式和连线类型
路由模式 title:(Link - routers) link:(https://resources.jointjs.com/docs/jointjs/v3.7/joint.html#routers) cover:(https://uploads-ssl.webflow.com/63061d4ee ......
Databend 玩转 local 模式
目前开发者们需要尝鲜databend, 可以选择使用databend cloud 或者按官方文档部署 databend 服务。 由于databend架构有三层,因此部署databend服务一般需要启动 databend-query, databend-meta , minio 三个进程,同时需要修改 ......
抽象工厂模式:创建对象的工厂中的工厂
在软件开发中,对象的创建是一个常见而重要的任务。不同的对象需要不同的创建方式,而且这些对象可能存在复杂的关联关系。为了解决这些问题,设计模式中有一个特别有用的创建型模式,即抽象工厂模式。本文将介绍抽象工厂模式的概念、使用场景以及示例代码。 1. 设计模式背景 设计模式是一种用于解决常见问题的经过验证 ......
IM跨平台技术学习(九):全面解密新QQ桌面版的Electron内存优化实践
本文我们将和大家分享新版 QQ 在内存优化方面的探索和阶段性优化进展。虽然本文的讨论主要集中在 Windows 平台,但由于 Electron 的跨平台特性,大部分优化措施也同样适用于 macOS 和 Linux 平台。 ......