首页
学习
活动
专区
工具
TVP
发布

Andromeda的专栏

Andromeda的专栏
专栏成员
109
文章
53521
阅读量
22
订阅数
浅谈RVO与NRVO
RVO(Return Value Optimization,返回值优化)和 NRVO(Named Return Value Optimization,命名返回值优化)是编译器进行的优化技术,旨在减少函数返回值的拷贝或移动操作。它们是 C++编译器在某些情况下自动应用的优化策略。
Andromeda
2024-07-27
1090
Protobuf简单使用
如果 .proto 文件包含 package 声明,则该文件的所有内容都将放置在相应的 C++ 命名空间中。例如,给定 package 声明
Andromeda
2024-07-27
910
浅谈IoC——C++怎么实现IoC?
有系统学习过Spring框架的同学都知道,Spring的一个很重要也是很有设计美感的一个特性——IoC (Inversion of Control),即控制反转。所谓控制反转,就是把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。
Andromeda
2024-07-27
1340
浅谈RVO与NRVO
RVO(Return Value Optimization,返回值优化)和 NRVO(Named Return Value Optimization,命名返回值优化)是编译器进行的优化技术,旨在减少函数返回值的拷贝或移动操作。它们是 C++编译器在某些情况下自动应用的优化策略。
Andromeda
2024-03-13
1320
leetcode刷题记录——2024年3月
用head记录头节点,pre记录当前已建立的排序双向链表的尾节点。中序遍历二叉树,遍历的结果即排序的数字,当pre为空时,说明还没建立任何节点,则让head等于当前节点,然后让pre等于当前节点,否则让pre的后继指针指向当前节点,当前节点的前驱指针指向pre节点即可。
Andromeda
2024-03-06
1120
leetcode刷题记录——2024年2月
使用队列进行层序遍历,sameparent记录每个节点的兄弟节点的值,同时sum用于存储当前遍历层的下一层节点总和。当遍历到下一层时,每个节点的val等于sum-兄弟节点的val。
Andromeda
2024-02-08
900
CMU 15445 2023fall Project1 Buffer Pool Manager
通过本地测试大概花了三天,第一次提交线上测试只有45分😭😭😭。后来又陆陆续续修改,又花了两天时间终于过了。不过这个实现基本毫无性能可言,bpm的每个函数都是简单粗暴地直接上scope lock锁住整个函数作用域,所以QPS rank排在200靠后了,后面再做优化吧。
Andromeda
2024-01-25
9850
GoF 23种经典的设计模式——装饰器模式
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。
Andromeda
2024-01-21
580
CMU 15445 2023fall #Project0 实现一个简单的k-v存储引擎
太吓人了,这甚至只是个课程入门实验,但是前两部分主要的内容差不多花了我一整天🥲🥲🥲(可能是我的C++基础太差了😥😥😥。
Andromeda
2024-01-20
6850
GoF 23种经典的设计模式——适配器模式
适配器模式(Adapter Pattern)是一种结构性设计模式,它允许接口不兼容的类之间进行协同工作。适配器模式充当两个不兼容接口之间的桥梁,使得它们能够协同工作而无需修改其源代码。
Andromeda
2024-01-18
1020
GoF 23种经典的设计模式——桥接模式
桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
Andromeda
2024-01-17
970
GoF 23种经典的设计模式——原型模式
原型模式(Prototype Pattern)是一种创建型设计模式,其主要思想是通过复制(克隆)现有对象来创建新的对象,而不是通过构造函数创建。这样可以避免重复创建相似对象时的性能损耗,同时也更灵活,可以动态地添加或删除对象。原型模式的性能优势主要来自于避免了重复的初始化和构造过程。在原型模式中,对象的克隆是通过复制已有对象的数据而不是重新构造对象,因此避免了重复的初始化和资源获取操作,提高了性能。
Andromeda
2024-01-16
1210
GoF 23种经典的设计模式——创建者模式
Builder 模式是一种创建对象的设计模式,它将对象的构建过程与其表示分离,允许按照步骤构建复杂对象。它提供了一种可读性强、灵活性高的方式来构建对象。
Andromeda
2024-01-15
1310
GoF 23种经典的设计模式——单例模式
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。它确保一个类只有一个实例,并提供了一个全局访问点来访问该实例。
Andromeda
2024-01-14
1070
Redis主从复制的集群模式
主从复制,指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台 Redis 服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
Andromeda
2024-01-14
1450
Redis 持久化
Redis 提供了两种持久化方式,即 RDB(Redis Database)和 AOF(Append-Only File)。
Andromeda
2024-01-13
1710
GoF 23种经典的设计模式——工厂模式
工厂模式是一种创建型设计模式,它提供了一种封装对象创建过程的方式。在工厂模式中,我们将对象的实例化过程移到一个独立的工厂类中,客户端通过调用工厂类的方法来创建对象,而不是直接使用 new 关键字实例化对象。
Andromeda
2024-01-13
1320
GoF 23种经典的设计模式——抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种方式来创建一系列相关或依赖对象的家族,而无需指定具体的类。
Andromeda
2024-01-13
1710
Redis 内部编码与优化方式
redis 为每种数据类型都提供了多种内部编码方式,以散列类型为例,通过散列表实现散列类型,此时查找和赋值操作时间复杂度为 O(1),但是当键中元素很少时,O(1)的性能并不会比 O(n)有明显的性能提高。所以此时 redis 会使用一种比较紧凑但是性能稍差的内部编码方式,内部编码方式对于开发者来说是透明的,当键中元素变多时,redis 就会自动调整内部编码方式,转换为散列表。
Andromeda
2024-01-11
2100
实现 Linux 系统防火墙(包过滤、状态防火墙、NAT)
最大的难点在于内核驱动的编写,在此之前我也没有做过Linux内核模块的代码编写,所以刚开始做起来非常吃力,这要求代码编写者有非常好的C语言基础,能非常熟练地应用C语言的结构体、指针、函数指针及内存动态申请和释放等。 最困难的一点就是Bug的排查太过于困难了。每次编译运行的时候都提心吊胆,害怕跑起来哪里出错了,一旦出错,比如解引用了空指针或者没有及时释放分配的内存导致内存泄漏,动辄就会导致内核程序崩溃,只能重新启动虚拟机(重启虚拟机太浪费时间了),因为是内核程序,所以内核崩溃故障的定位和排查也不容易(到现在这个程序其实还不太稳定)。
Andromeda
2024-01-07
4950
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档