- 博客(465)
- 资源 (3)
- 收藏
- 关注
原创 长二进制串或字符串的分块存储探讨
在做数据处理过程中,经常面临处理字符数据量的不断增长,有时数据量可能达到GB以上,甚至几十GB的情况;分块存储策略,是一个比较容易想到的策略,使用许多分块内存来满足数据的不断增长。
2025-06-22 10:04:11
457
原创 高并发系统下Mutex锁、读写锁、线程重入锁的使用思考
本文对比了三种锁机制——Mutex互斥锁、RWLock读写锁和ThreadMutex可重入锁的工作原理。Mutex仅允许单线程访问;读写锁区分读/写状态,实现读共享/写互斥;可重入锁允许持有线程重复加锁。高并发系统设计关键在于"快进快出"原则:缩短锁持有时间、避免在锁内进行IO/计算/内存操作,建议使用原子操作替代传统锁。
2025-05-26 21:42:40
434
原创 关于UTF编码的codepoint
UTF编码(Unicode Transformation Format)是一种通用的字符编码标准,核心是码点(codepoint),同一字符在不同UTF编码(如UTF-8、UTF-16、UTF-32)中码点唯一,便于互转。Unicode码点范围从U+0000到U+10FFFF,涵盖1,114,112个码点,基本覆盖主流文字,但仍有少数生僻文字未被包含,Unicode联盟持续扩充编码范围。
2025-05-10 11:10:23
795
原创 关于char字符的16进制打印
在C语言中,使用printf函数打印char类型的16进制内容时,直接使用%0.2x格式可能会导致非预期结果。具体来说,当char类型的值超过0x7F时,printf会将其视为int类型,并按照4字节的补码形式打印,导致输出结果异常。例如,char类型的-128到-1会被打印为0xffffff80到0xffffffff。
2025-05-10 09:14:47
654
原创 避免误用strncmp与memcmp,strcpy与memcpy
许多时候,我们作为软件研发人员,会觉得- 一段内存就是一串字符串;- 字符串就是一段内存;概念上,往往会觉得,一段内存,一串字符串,两者许多时候可以指同一个对象的。
2025-04-08 20:34:14
580
原创 海明码的认识理解与延伸
海明码是一个不错的监测纠正算法,能够检测出纠正一位传输错误,提高数据传输的可靠性。关于海明码算法,它的检测特点类似于:数据范围与位数的关系。
2025-02-11 20:45:00
1537
原创 va_list/va_start/va_end/va_arg可变参数的使用
做日志打印或其它可变参数处理时,通常我们会想到使用va_list/va_start/va_end做可变参数的收集和处理。使用这种方式处理可变参数比较通用,同时适用于c与c++中。
2025-02-01 20:45:31
1199
原创 个人云服务器linux系统增加swap空间
如果你也购买了个人的阿里云服务器、百度云服务器、腾讯云服务器 或 轻量云服务的话,并且安装了linux系统,那么你可能需要做swap的配置,来增强服务器的性能,提高服务器支撑的内存容量。
2025-01-27 18:30:00
622
原创 关于高级工程师的想法
关于高级工程师,自己的想法是这样的,一是相关的行业经验积累,二是抽象总结与表达能力,三是心态上从容笃定,四是能够接受更长时间的不确定性。
2025-01-17 21:00:00
225
原创 leveldb的DBSequence从哪里来,到哪里去?
leveldb数据库的DBSequence从哪里来,到哪里去?大概的情形是,leveldb的记录初始DBSequence为0,随着记录的增加,记录sequence不断随着增加,并持久化到文件中。细节在哪呢?
2025-01-03 20:49:04
702
原创 软考系统架构师一些知识点记录--质量评估效用树Utility Tree
可以理解为信息安全Security、数据安全security、系统安全security,也即系统不容易被病毒、黑客所攻破,系统比较安全;也或操作需要授权,权限管理等。例如:也可能通过负载均衡多个主机提供服务,一个网络出问题了,负载转到另一个机器上服务,服务高可用;关注的是系统能够支持的服务响应速度,系统能支持的容量限额等要求,或是系统对系统资源的占用限额要求。可以理解为修改定制比较容易,定制业务相关的新功能特性时,耗费的开发成本比较低,部署成本比较低。例如:可能通过热双机,一个主机出问题了,另一个启用;
2024-10-24 22:05:16
608
原创 浮点数二进制制科学计数法理解
对于浮点类型,我们知道其采用科学计数法,准确来说应该是二进制科学计数法。为什么准确说是是二进制科学计数法,而不是称为科学计数法?
2024-10-17 22:32:36
904
原创 leveldb前缀匹配查找Seek
最近偶然发现了,leveldb前缀匹配查找的功能。之前没有从这个角度去想过Seek方法,尝试使用之后,效率还是很好的。时不我待,下面也谈一谈该技术点,以及这个技术点的背后支持,leveldb为此做的实现。
2024-09-24 21:30:28
757
原创 实现一个自定义STL类模版DataStorage
尝试自己来实现一个模版类,来满足一些常用语法、常用接口的使用。综合std::vector与std::array特点,提供一个由这两个类对象组合出来的内存结构类模版,该模版类有一个固定内存块和一个动态内存块,对外提供stl的相关访问方法。
2024-08-19 22:01:02
851
原创 使用perfmon做进程性能监视的方法技巧
关于perfmon的使用,一方面是关于如何对一个应用进程,做相关的资源占用分析,做性能分析?另一方面是关于如何对查看分析报告,查看细节细微调整的一些方法?
2024-07-26 19:07:12
833
2
原创 堆溢出崩溃vs栈溢出崩溃的内存越界对比分析
最近碰到了软件运行的两个崩溃问题,非常典型,一个堆溢出越界问题heap overflow,一个栈溢出越界问题statck overflow。
2024-07-19 19:25:57
1462
原创 软考系统架构师一些知识点记录-2-系统质量属性与架构评估
接着上次的内容,这次记录的是”第三篇-架构设计高级知识---系统质量属性与架构评估“的内容,这一节在软考时,也出了有不少题目。
2024-05-31 17:27:50
530
原创 linux下coredump问题的定位分析方法
linux下core问题的定位,除了使用常规的gdb分析core文件与重现问题之外,我们还可以关注一些点:第一关注运行日志,第二关注运行限制和系统信息,第三关注系统历史运行信息,另外还有一些常见问题项等。
2024-04-10 20:11:45
1277
原创 透过dumpe2fs看ext2文件系统
对于ext2文件系统,我们大多数会有所耳闻的,那我们是否知道,该文件系统的内部存储结构是什么样的?另外对于一个制定大小的文件系统,它的存储大小和文件数有约束吗?一个10MB的ext2文件系统中:能支持建立多少个文件?能建立1000个?10000个?和什么有关系?能最大存储多大的内容,是满10MB吗?还是9MB?由什么来确定的?
2024-03-15 18:35:19
1111
原创 惊艳的KMP字符串匹配算法
KMP字符串匹配算法是早有耳闻的,但之前并未去了解它的字符串匹配思路;昨天晚上偶然翻书看到,发现算法设计思路非常棒,在自己看来,可以用惊艳来形容。
2024-02-20 10:20:42
1071
原创 使用Excel计算--任务完成总工作日时长
计算任务完成时间周期,和计算金钱一样,是一个比较细致严谨的工作。通常,我们可能以为,完成周期形如:任务完成周期 = 任务结束时间 - 任务开始时间。但是一般情况下,对于正常社会企业,通常都是要把排除掉休息日,来计算的任务完成周期。
2024-01-26 18:14:21
2516
原创 git-clone的single-branch操作回退
之前使用了single-branch下载分支,后来想取消掉,但怎么做呢,查了一些资料之后,了解到了怎么做,特记录下来。
2024-01-20 21:13:24
1669
原创 CMakeLists中Set编译器要放在project设定之前
前一段时间做Linux下的编译,遇到一个奇怪的问题,明明设定了使用C Compiler, CXX Copmiler,但是cmake时还是报错,找了clang++编译器,觉得很奇怪。
2023-10-13 10:12:12
432
原创 linux脚本-使用top命令监控进程cpu与mem占用
下面是两个shell脚本程序,算是常用到的两个脚本形式:一个是监控进程cpu与mem占用的;一个是启动多进程,为程序传递不同数字参数的;
2023-10-12 11:51:07
605
原创 linux下查看库符号注意使用c++filt解析
这篇文档,主要内容就如标题所言:linux下查看库符号是,注意使用c++filt解析后,再来做grep查找。
2023-08-29 19:16:54
694
原创 stl库提供的几个智能指针特点
STL提供了几种智能指针模板,shared_ptr, unqiue_ptr, auto_ptr(c++17已停用), weak_ptr,他们各有特色,每一种都有自己的特点。
2023-08-29 18:49:54
174
原创 sqlite使用样例与utf编码
关于如何来使用sqlite,写了一些简单的使用样例。数据库使用样例,无外乎几种,打开数据库,创建表,插入数据,查询数据,DDL与DML几种操作。另外由于sqlite的接口限制约束,要求字符串使用utf编码格式,所以也会涉及编码使用的部分知识。
2023-07-15 20:44:56
1634
原创 leveldb的Version相关类分析
在leveldb中,Version相关类是其中比较复杂的几个类了,主要包括Version、VersionEdit、VersionSet几个类。
2023-06-27 21:13:48
246
原创 堆排序与大顶堆
有一天,别人问到你,你了解 堆排序吗?或者 你对大顶堆了解吗?之前问我的话,我是不太了解的,不过现在了解多了。也期望通过下文,你也能对它了解起来。
2023-05-17 22:53:44
598
原创 虚函数继承与虚函数表-汇编码分析
虚函数继承是如何继承的呢?我们听说的虚函数表是怎么回事?虚函数表指针是如何变化与赋值呢?虚函数表存储的内容格式是什么样子的?
2023-04-09 16:51:50
789
原创 为什么在leveldb::DB类实现Put/Delete方法
leveldb::DBImpl并不是实现leveldb::DB全部方法,leveldb::DB也实现了一些方法:Put,Delete就是其中两个。
2023-03-24 22:50:09
527
原创 leveldb的Compaction线程
在leveldb中,有一个全局的后台线程BGThread,用于数据库的MinorCompact与MajorCompact。重点关注“全局线程”:这个标识着无论一个进程打开多少个leveldb库,该Compact线程只有一个;
2023-03-24 22:41:04
467
原创 解读CRC校验计算
CRC校验的思路是,把一个串作为一个长的数值,附加某段校验码后,形成一个更长的数值串,对该数值串求余运算时能够整除;从而来校验内容未被篡改;
2023-02-27 21:36:13
1735
AutoCad 2011版的DXF参考手册官方地址
2013-06-20
Window上的Shell文件
2013-06-07
Python语言程序设计基础_课件PPT_嵩天
2018-12-01
编译原理-简单计算器
2014-08-31
Mac上构建OpenGL红宝书上的triangles程序
2019-04-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人