• 2025-01-21MySQL--为什么有了redo log还需要double write buffer机制?
      我们知道,数据页被加载到内存中,经过增删改一系列的操作后,并不会立即落盘,而是由后台线程选择某个合适的时机写入磁盘。在数据页尚未落盘时,如果这时MySQL突然崩溃或者断电,内存中的数据将全部丢失。这时,redolog就可以发挥其作用了,只要重放redolog就可以恢复事务。  但
  • 2025-01-21Android Systrace 基础知识 - Triple Buffer 解读
    怎么定义掉帧?Systrace中可以看到应用的掉帧情况,我们经常看到说主线程超过16.6ms就会掉帧,其实不然,这和我们这一篇文章讲到的TripleBuffer和一定的关系,一般来说,Systrace中我们从App端和SurfaceFlinger端一起来判断掉帧情况App端判断掉帧如果之前没有看过Systrace
  • 2025-01-20Java初学者笔记-08、IO流
    I:负责把磁盘和网络中的数据读到程序内存中去。O:负责把程序内存中的数据写到网络或者磁盘中。按照流的内容,IO流分为字节流和字符流。字节流:最小单位是字节。适合操作所有类型的文件。比如音频、视频、图片文本等的复制,转移。字符流:只适合操作纯文本文件。比如读写txt,java文件
  • 2025-01-17【MySQL架构】图解
    你是一个程序员,你做了一个网站应用,站点里的用户数据,需要存到某个地方,方便随时读写。很容易想到可以将数据存到文件里。但如果数据量很大,想从大量文件数据中查找某部分数据,并更新,是一件很痛苦的事情。那么问题就来了,有办法可以解决这个问题吗?好办,没有什么是加一层中间层不能解
  • 2025-01-14STM32H723 ADC 差分与单端转换
    1、配置ADC2、配置DMA 3、DMA转换数据到数组/*USERCODEBEGINHeader_StartTaskModbus*/#defineADC_BUFFER_SIZE8//根据规则通道数调整uint32_tadc_buffer[ADC_BUFFER_SIZE];//ADC采样结果缓冲区/***@briefFunctionimplementingthemyTaskModbusthrea
  • 2025-01-14MySQL事务
    事务的ACID特性Atomic(原子性)所有语句作为一个单元全部成功执行或全部取消,不能出现中间状态。Consistent(一致性)如果数据库在事务开始时处于一致状态,则在执行该事务期间将保留一致状态。Isolated(隔离性)事务之间不相互影响。Durable(持久性)事务成功完成后,所做的所有更改都
  • 2025-01-12⭐MySQL的底层原理与架构
    前言了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。了解MySQL架构通过上面的架构图可以得知,Server层中主要由连接器、查询缓存、解析器/分析器、优化器、执行器几部分组成的,下面将主要描述下这几部分。1、连
  • 2025-01-11C#中简单Socket编程
    引言Socket编程是网络编程的基础,通过Socket编程,可以实现计算机之间的通信。本文将介绍如何在C#中进行简单的Socket编程,包括服务器端和客户端的实现。示例将展示TCP连接的基本操作,适用于理解网络通信的基本概念和实现方法。准备工作确保您的开发环境中安装了.NETSDK,可以通过Vis
  • 2025-01-10cpp中的sprintf_s
    sprintf_s()用来拼接字符串并且赋值到第一个参数中。例如下面的例子将整形的n和浮点型f拼接到一个字符串中,并且给buffer赋值 #include<stdio.h> #include<string> #include<iostream> usingnamespacestd; intmain(){ charbuffer[50]; intn=10; f
  • 2025-01-09Buffer
    Buffer特点:(1)大小固定,不能调整;(2)性能较好,可以直接对计算机内存进行操作;(3)每个元素的大小为1字节(byte);相关操作:1.Buffer(十六进制)的创建:(1)Buffer.alloc(wantedLength)创建指定长度个00(十六进制数,原始数据清零)的Buffer(2)Buffer.allocUnsafe(wantedLength)创建指定长度
  • 2025-01-09C语言gets()被删除了,改用fgets()!
    在《C语言的五套标准:C89、C99、C11、C17和C23》一节里提到,作为上世纪70年代的产物,C语言历经了多个版本的迭代,增加很多新语法的同时,也剔除了当下认为不再适用的语法,这其中就包括gets()函数。gets()算得上是C语言里“元老级”的输入函数,C语言诞生的时候就有它了。直到C1
  • 2025-01-08【源码】ByteToMessageDecoder对比自定义实现
    前言在上一篇随笔中,我们探讨了如何实现一套自定义通信协议,其中涉及到的粘包和拆包处理最初是完全自定义实现的,后来则改为了继承ByteToMessageDecoder来简化处理。本篇将重点讨论这两种实现方式在缓存管理上的主要区别,并深入分析其中的不同之处以及值得借鉴的经验和技巧。代码
  • 2025-01-0848 小时内基于 TCP 实现简单网络协议的挑战与实践
    目录48小时内基于TCP实现简单网络协议的挑战与实践1.笔试题剖析1.1题目要求1.2关键难点2.协议设计思路2.1数据帧结构设计2.2连接对象设计2.3writer和reader实现3.代码实现解析3.1数据类型与header定义3.2连接对象实现3.3writer实现3.4reader
  • 2025-01-06WebAudioContext.createBufferSource
    BufferSourceNodeWebAudioContext.createBufferSource()小程序插件:不支持功能描述创建一个BufferSourceNode实例,通过AudioBuffer对象来播放音频数据。返回值BufferSourceNode示例代码constaudioCtx=wx.createWebAudioContext()constloadAudio=(url)=>{retu
  • 2025-01-05不可不知的MySQL配置参数,让数据库“稳如狗”
    为了提高MySQL服务器的性能和稳定性,我们需要对其配置参数进行调整,主要包含OS配置参数和MySQL数据库配置参数,需要的小伙伴可以参考一下。OS配置部分(1)在BIOS及内核层面关闭NUMA(2)在BIOS层面将CPU、内存均设置最大性能模式(3)在BIOS层面关闭CPU节能模式(4)修改IOScheduler为deadline或
  • 2025-01-04Emacs 中的缓冲区(Buffer)介绍
    Emacs中的缓冲区(Buffer)在Emacs中,缓冲区(buffer)是一个核心概念,表示Emacs内部用于处理和显示文本的“工作区域”。每个打开的文件、运行的命令、显示的消息、终端会话等都被分配到一个独立的缓冲区。缓冲区的特点不局限于文件:缓冲区不一定与文件相关联。它可以是用
  • 2025-01-04C/C++语言float转string保留两位小数
    在C/C++中,将浮点数(float或double)转换为字符串并保留两位小数,通常需要使用格式化函数。在C语言中,通常可以使用标准库中的sprintf或snprintf函数;在C++中,可以使用std::ostringstream或者C++11引入的std::to_string配合自定义格式。不过,std::to_string本身并不直接支持指定小数
  • 2025-01-03multi_io 一连接一线程
    每连接一个客户端,就创建一个线程所谓c10k问题,指的是:服务器如何支持10k个并发连接,也就是concurrent10000connection(这也是c10k这个名字的由来)。//函数类型*client_thread//intclientfd=*(int*)argvoid*client_thread(void*arg){intclientfd=*(int*)arg;
  • 2025-01-03解决微信二维码接口接口返回:errcode\":47001,\"errmsg\":\"data format error rid: xxx和处理返回的b
    dataformaterrorrid问题:在php中使用curl调用微信二维码生成接口getwxacodeunlimit时得到错误响应信息:errcode\":47001,\"errmsg\":\"dataformaterrorrid:xxx在微信开发者社区看了几个帖子全是在胡说,还有width参数不能小于280这种,真是笑死。。。解决:最终确定原因是接
  • 2025-01-03wx.createBufferURL
    stringwx.createBufferURL(ArrayBuffer|TypedArraybuffer)基础库2.14.0开始支持,低版本需做兼容处理。小程序插件:不支持微信Windows版:支持微信Mac版:支持相关文档:存储策略功能描述根据传入的buffer创建一个唯一的URL存在内存中参数ArrayBuffer|TypedAr
  • 2025-01-01说说你对NodeJs中Buffer的理解?
    在Node.js中,Buffer是一个全局可用的类,用于处理二进制数据。由于JavaScript最初是为处理文本数据而设计的,因此它在处理二进制数据时存在一些限制。Buffer类的引入正是为了弥补这一不足,使得Node.js能够高效地处理网络操作、文件I/O、图像处理等场景中的二进制数据。以下是关于Nod
  • 2024-12-31GO 学习笔记之零 (四)字符串处理集锦
    1、遍历字符串中的每个字符 2、去掉字符串前后空格strings.TrimSpace(str)3、字符串长度len(str)4、缓存方式拼接字符串var_bufferbytes.Buffer//定义缓存字符串变量_buffer.WriteString(str1)//拼接字符串_buffer.WriteString(str2[0:1])//拼接字符_buffer
  • 2024-12-30LOL
    先定义publicintrecurCount=0;//数据包重发次数计数器(仅用于内部处理,非业务数据)publicIPEndPointendPoint;//目标终端的IP地址和端口号//数据包头部信息publicintprotoSize;//业务数据的字节大小publicintsession;//
  • 2024-12-30走进前端二进制
    由于格式和图片解析问题,可以前往博客阅读原文在实际的开发过程中经常会遇到二进制数据,常见的就有文件的上传、下载等等,还有比较重要的图片裁剪、灰度处理等等,这些场景都会涉及到二进制。相信很多开发者对这方面可能一知半解或者就是久而忘之,本人刚开始也是对这方面空白,通过全
  • 2024-12-29学期 2024-2025-1 学号 20241409《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十四周作业这个作业的目标 《C语言程序设计》第十四章作业正文 本周学习内容进行了缓冲区溢出实验缓冲区溢出是指程序试图向缓冲区写入超出预分配固定