自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勇敢牛牛

hello world

  • 博客(98)
  • 问答 (4)
  • 收藏
  • 关注

原创 RocksDB 与 ZenFS:原理、特性及在科研与工程中的应用初步探索

RocksDB是一个高性能嵌入式键值数据库引擎,基于LevelDB改进,专为高吞吐、低延迟场景设计。ZenFS是为ZNS SSD设计的用户态文件系统插件,专门服务于RocksDB的数据管理。两者关系如下:RocksDB作为嵌入式库直接集成到应用程序中,默认使用普通文件系统;而ZenFS作为可选插件,为RocksDB提供针对ZNS SSD优化的顺序写入接口。科研中常将两者结合用于新型存储设备性能评估,形成"应用-RocksDB-ZenFS-ZNS SSD"的完整实验架构。

2025-07-10 23:53:31 659

原创 ZNS初步认识—GPT

ZNS SSD:优化存储效率的新技术 ZNS(Zoned Namespace)SSD是一种新型NVMe存储设备,通过分区管理机制解决传统SSD的痛点。它将存储空间划分为固定大小的区域(Zone),每个区域仅支持顺序写入,需重置才能重新写入。这种设计显著降低了传统SSD因复杂FTL(闪存转换层)带来的写入放大、性能波动等问题。ZNS SSD的优势包括:更低的写入放大(接近1)、更稳定的性能、更长的使用寿命以及简化的控制器设计。然而,这种变革要求操作系统、文件系统和数据库等软件栈进行重大调整以适应新的存储特性。

2025-06-30 19:12:18 774

原创 MIT 6.S081—环境配置和初步学习day01(VMware和Ubuntu安装)

本文介绍了在虚拟机中安装和配置Ubuntu 20.04系统以运行xv6操作系统的完整流程。首先从VMware官网下载并安装Workstation Pro虚拟机软件,然后获取Ubuntu 20.04.3桌面版ISO镜像。详细展示了创建虚拟机、分配资源(建议4GB内存、25GB存储)和安装Ubuntu的步骤。安装完成后,需执行命令安装必要的开发工具链,包括RISC-V编译器、QEMU模拟器和调试工具。最后通过git克隆xv6-labs-2021项目仓库,运行make qemu命令成功启动xv6系统。

2025-06-26 23:06:51 918

原创 vscode+react+ESLint解决不引入组件,vscode不会报错的问题

摘要:解决VSCode不报错React组件未导入问题,需配置ESLint规则。步骤: 确保安装eslint-plugin-react等依赖 创建eslint.config.js文件 配置包含React插件推荐规则(含jsx-no-undef) 安装VSCode的ESLint插件 配置中需特别设置react/jsx相关规则和JSX语法支持 通过此配置可强制检测未导入的React组件,解决默认不报错问题。重点使用reactPlugin.configs.recommended.rules来启用相关检查规则。

2025-06-22 22:10:49 196

原创 C++实现异步(重叠)管道通信

本文介绍了一种使用重叠I/O(OVERLAPPED)实现命名管道异步通信的方法,通过创建停止事件和工作线程,避免阻塞ConnectNamedPipe操作。主要步骤包括:1) 创建停止事件和OVERLAPPED事件;2) 以FILE_FLAG_OVERLAPPED标志创建命名管道;3) 启动后台线程使用WaitForMultipleObjects同时监听停止事件和管道连接事件;4) 在窗口销毁时通过SetEvent通知线程退出。该方法实现了管道连接的异步处理,并提供了安全的线程退出机制,确保程序能够及时释放资

2025-06-19 23:22:32 162

原创 yarn create vite报错:文件名、目录名或卷标语法不正确。 error Command failed.

摘要(150字) 由于Yarn默认将安装包存储在C盘,而npm包被安装在D盘,导致路径冲突报错。需修改Yarn的全局包安装目录:1. 在D盘新建Yarn文件夹并创建global和cache子目录;2. 通过命令行设置新路径:yarn config set global-folder "D:\...\global"和yarn config set cache-folder "D:\...\cache"。此操作将同步Yarn与npm的存储位置,解决磁盘路径不一致问题。(1

2025-06-19 23:14:48 238

原创 Nodejs安装记录

nodejs安装记录

2025-06-19 00:29:30 165

原创 vs2022同一个解决方案根据版本变更动态加载不同project

你可以通过脚本(如 PowerShell、bat 文件)来动态生成或修改 .sln 文件,根据 YEAR环境变量的值,自动替换 .sln 文件中的项目路径。你可以在 .vcxproj 文件中使用 MSBuild 的 PropertyGroup 来定义路径,并结合 MSBuild 的条件编译机制来动态调整项目文件的路径。如果bat中定义num=1111,Dll1.sln中的%num%就会被替换为1111,如果是2222,就会被替换为2222。打开编辑Dll1.sln,加入bat中的num名。

2024-10-24 00:35:26 432

原创 C++写入CSV的操作、混合类型数据写入CSV、写入大数据

写入CSV的操作

2024-09-11 00:02:32 2913 1

原创 开发中ostringstream,格式化输出的问题

这段代码利用了 C++17 的特性,结合模板和来处理不同类型的输入。对于浮点类型,代码会格式化输出,保留四位小数;对于非浮点类型,直接将值转化为字符串输出。这种方法可以在编译时根据类型生成优化的代码,非常适合模板编程场景。:允许在编译时对类型进行条件判断,避免不必要的代码生成。:提供了一个灵活的方式来将各种类型的数据格式化为字符串。和 std::fixed:用来控制浮点数的输出格式。非常适合格式化输出,特别是当你需要将多种不同数据类型格式化成字符串时。通过重载

2024-09-10 23:33:13 862

原创 std::ostringstream的原理和实际开发中的应用场景

std::ostringstream和运算符重载

2024-09-10 23:27:40 1363

原创 C++标准库函数 std::rotate

前向迭代器是一种迭代器类型,它支持以下操作:可以通过解引用来访问元素。可以向前移动(支持++操作符)。任何可以用前向迭代器的算法,也可以用更强的随机访问迭代器来工作(如std::vector和std::array的迭代器)。C++标准库中的容器如std::vector、std::list、std::deque等都提供了前向迭代器,因此你可以直接在这些容器上使用std::rotate。

2024-08-12 20:30:19 631

原创 C++中constexpr和#define定义常量的区别

在C++中,使用constexpr来定义常量和使用宏#defineconstexprconstexprconstexprconstexpr你可以在类内使用constexpr来定义常量,并规定这些常量只在类的范围内生效。

2024-07-03 17:17:10 784

原创 lib库和dll库的介绍和使用

静态库的.lib文件:包含了所有函数的完整实现。动态库的.lib文件:不包含函数实现,仅包含函数的符号信息,用于链接时指向对应的.dll文件。在解决方案中,一个DLL工程中和一个Lib工程,DLL工程调用Lib工程需要添加附加依赖项和附加库目录。

2024-06-05 21:13:09 1061

原创 VS2022,DLL1调用lib,lib调用DLL2

DLL1工程调用lib工程,lib工程调用DLL2工程

2024-06-05 20:56:49 1165

原创 VS2022,lib调用dll工程的一个函数

lib工程本身是一个静态库工程,没有链接器设置。然而,我们依然可以在lib工程中调用DLL工程中的函数,只需要确保头文件正确导入,并在最终使用lib的可执行文件项目中正确链接DLL的.lib文件。下面是一个详细的步骤说明:假设有以下项目:::2. 在静态库工程中包含DLL工程的头文件并使用函数:3. 在可执行文件工程中配置链接和调用在可执行文件工程中,需要链接DLL的.lib文件以及静态库的.lib文件。:可执行文件工程设置:包含路径:库目录:附加依赖项:假设目录结构如下:ExeProject

2024-06-05 20:50:28 632

原创 tomcat解决Output和Tomcat Localhost Log乱码问题

【代码】Tomcat解决Output和Tomcat Localhost Log乱码问题。

2024-05-26 02:47:20 525

原创 C++函数指针,键值对集合的学习

这段代码使用了来存储作为键(key),而对应的值(value)是一个类型的函数指针。这个结构使得根据字符串键来动态调用不同的函数成为可能。下面,我将详细解释代码中的每个关键部分。这是一个基于哈希表的关联容器,它允许快速的键值对查找。键(key)是唯一的,并且每个键都映射到一个值。在这个例子中,键是类型,而值是一个函数指针,封装在中。是一个函数包装器,它可以存储、调用或引用任何可调用的目标——函数、Lambda 表达式、函数指针、或其他函数对象。这里,它被用来存储接受三个参数的函数:一个,一个。

2024-05-23 20:56:45 737

原创 C读取CSV文件,通过某种条件,按照特定行和同一列进行读取

读取CSV文件,按照特定行和列进行读取

2023-12-06 02:42:16 691

原创 C++运算符重载

C++运算符重载

2023-11-21 22:33:04 229

原创 C语言—窄字符或宽字符

在Windows编程中,API函数通常提供了窄字符版本(以“A”结尾,例如MessageBoxA)和宽字符版本(以“W”结尾,例如MessageBoxW),开发者可以根据需要选择使用窄字符或宽字符版本的函数。在窄字符编码中,一个字节能够表示的字符数量有限,通常包括基本的ASCII字符集(0-127)和一些扩展字符,但不包括特殊字符、非拉丁字符、汉字等。在Windows环境下,宽字符编码通常使用Unicode编码,每个字符占用两个字节(UTF-16编码),用于支持世界上各种语言的字符。

2023-11-07 23:54:40 448

原创 C—结构体,动态分配内存存储字符串

C语音,字符串大小不固定,动态分配内存

2023-11-06 23:17:53 646

原创 C++基础复习

【代码】C++基础复习。

2023-10-31 20:51:54 130

原创 React18学习

React18学习

2023-10-06 21:15:41 483

原创 idea在控制台中输出文字显示乱码

idea在控制台中输出文字显示乱码

2023-08-09 20:06:17 208

原创 Java常用工具类

Calendar、SimpleDateFormat等常用工具类

2023-07-31 23:20:49 207

原创 jQuery学习

/ 自动触发事件(对于最外面的函数),必须写在前面已经定义的后面。一、trigger()触发器。

2023-07-25 23:53:17 354

原创 JS、jQuery开发小笔记

开发笔记

2023-07-20 23:35:24 121

原创 freemarker学习

freemarker学习

2023-07-12 23:45:25 747

原创 Jersey框架学习

Jersey框架学习

2023-07-06 22:49:43 586

原创 SpringMVC快速学习

SpringMVC—动力节点快速学习

2023-07-04 23:09:10 237

原创 jsp—MacOS下配置Tomcat和JSTL

jsp——配置Tomcat和jstl

2023-06-25 21:55:38 835

原创 ssm学习-spring01

黑马ssm框架原理学习-spring01day01

2023-06-03 12:04:07 284

原创 30完结散花

javaweb黑马2023最新版完结散花

2023-05-31 18:52:56 129

原创 29Maven高级

Maven高级

2023-05-31 18:50:29 906

原创 28SpringBoot原理

springboot原理学习

2023-05-30 18:02:17 115

原创 27事务管理&AOP

事务管理&AOP

2023-05-24 15:58:57 753

原创 P26全局异常处理器P172

全局异常处理器

2023-05-19 09:32:52 88

原创 eclipse项目导入idea

摘要:把eclipse项目导入idea

2023-05-16 16:36:23 249

原创 24P153配置文件-优化

【代码】24P153配置文件-优化。

2023-05-15 19:25:51 112

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除