自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 go websocket

Socket 处理低层次的网络传输,而 WebSocket 是在 HTTP 协议之上的二层协议,使用更容易,效率也更高,同时也支持双向实时通讯。Websocket 将 HTTP 协议升级后,实现了长连接,即建立连接后可以持续通信,避免了客户端与服务端频繁连接和断开连接的过程。Socket 通信是通过 Socket 套接字来实现的,而 Websocket 通信是通过 HTTP 的握手过程实现的。Socket 是基于传输层 TCP 协议的,而 Websocket 是基于 HTTP 协议的。

2024-04-09 13:31:13 512 2

原创 golang 中 sync包

WaitGroup 的用途:它能够一直等到所有的 goroutine 执行完成,并且阻塞主线程的执行,直到所有的 goroutine 执行完成。其可将顺序执行变为并行计算,可极大提高程序的执行效率。也能更好的发挥出多核CPU的优势。WaitGroup 总共有三个方法:Add(delta int), Done(), Wait()。简单的说一下这三个方法的作用。通过golang的goruntine来提供一种异步处理程序的能力。Wait:执行阻塞,直到所有的WaitGroup数量变成 0。

2024-04-09 13:17:31 500

原创 如何使用WebAssembly:浏览器中加载wasm模块到JavaScript

上手WebAssembly - 掘金[wasm] Hello WebAssembly - 简书编译 C/C++ 为 WebAssembly - WebAssembly | MDNhttps://blog.youkuaiyun.com/a137748099/article/details/117336959wasm与JS交互 - 简书Qt:靠谱点了!基于WebAssembly开发网页端 - 知乎test

2023-07-04 13:59:48 1081

原创 Qt5.15.2 Webassembly源码裁剪编译

src.pro 定义了subdirs,此处删除编译不过;2. 进入到qtbase/src目录下, SUBDIRS定义了包含的模块;再根据依赖排序sort_depends,将需要编译的库,按顺序放入SUBDIRS;1. 源码库下.gitmodules文件定义了Qt所包含的子模块;makefile 为啥还包含test example。qt.pro遍历该文件获取要编译的模块;第二部:尝试删除qttest 关闭network。sync.profile定义。-nomake tests 无效。

2023-06-21 17:59:46 2694

原创 RocksDB读流程

简而言之,在RocksDB中的读取需要处理的最核心的一个问题就是如何读取最新的数据,这是由于RocksDB是基于LSM,因此在RocksDB中,对于数据的delete以及update,它并不会立即去执行对应的动作,而只是插入一条新的数据,而数据的最终更新(last-write-win)以及删除是在compact的时候来做的. 其实最那就是如何读取到一个数据的最新版本,因此首先我们需要知道在RocksDB中,多个版本的数据是如何保存的。首先我们需要知道在RocksDB中,数据是保存在两个地方,一个

2023-06-14 23:27:29 872

原创 RocksDB性能测试

6. 写入少量数据没有生成stable,写入大量数据后生成stable即SST文件;5. 写入内容一定要char*么?是否支持其他数据结构 list map 等;内存顺序IO > 内存随机IO = 磁盘顺序IO > 磁盘随机IO。为什么写日志速度快?

2023-06-14 21:45:36 610

原创 RocksDB源码分析之db_test LevelReopenWithFIFO

【代码】RocksDB源码分析之db_test LevelReopenWithFIFO。

2023-06-13 01:01:29 129

原创 RocksDB之Column Families(列族)与 LSM Tree

列族(Column Families)是rocksdb3.0提出的一个机制,用于对同一个数据库的记录(键值对)进行逻辑划分。列族具有的属性1)可以跨列族进行原子写,弥补了rocksdb在单个进程内只能操作一个数据库的问题。2)在不同的列族,提供数据库的一致性视图。3)可以对列族进行独立配置。4)动态添加和drop列族。

2023-06-13 00:00:05 2727

原创 RocksDb与LevelDB

9、RocksDB支持管道式的Memtable,也就说允许根据需要开辟多个Memtable,以解决Put与Compact速度差异的性能瓶颈问题。3、RocksDB除了简单的Put、Delete操作,还提供了一个Merge操作,说是为了对多个Put操作进行合并。而LevelDB则是一个比较单一的存储引擎。5、RocksDB增加了合并时过滤器,对一些不再符合条件的K-V进行丢弃,如根据K-V的有效期进行过滤。7、在故障方面,RocksDB支持增量备份和全量备份,允许将已删除的数据备份到指定的目录,供后续恢复。

2023-06-08 11:25:36 1762

原创 工作日记NO.13

3. 研究liadwg项目,尝试编译;2. 编译精简Qt5.15.X库;1. 执行机安装Qt;

2023-05-22 10:40:39 76

原创 工作日记NO.12

2. libdwg的makefile.in makefile.am研究。3)根据LINUX工程尝试编译(编写)emscripten工程。3. Qt5.8工程目录与结构 pro pri文件。1)尝试编译WINDOWS工程。2)尝试编译LINUX工程。1. makefile规则。

2023-05-22 10:38:49 73

原创 工作日记NO.11

LibreDWG属于GNU计划中的一个项目,是基于LibDWG开发的。专门提供给没钱有想操作DWG文件的人群~新任务:LibDWG编译成前端框架。LibDWG是什么?

2023-05-19 18:29:58 311

原创 Qt静态库编译

下载Qt5.15.2源码库,且已安装emscripten。替换后,使用自己编译的Qt组件进行qmake+make。

2023-05-19 16:48:57 649

原创 QtCreator编译

debug模式会在makefile中自动加入-g参数,编译出来的程序自带符号信息可以让我们调试。额外的参数:允许你给qmake添加额外的参数。Generate separate debug info,产生独立的调试信息,这个功能就超级实用了,它将程序的调试信息单独生成一个文件,试想,构建时选择release,再把这个选上,是不是即兼顾到了发布又兼顾到了调试。不过这个操作建议只在release上进行,如果是debug下再勾选这个,虽然调试信息是独立出来了,但生成的二进制文件还是要比release的大。

2023-05-19 11:39:15 1412

原创 工作日记NO.9

3. gstarcad项目未用qt命令行编译成功;1. QtCreator的debug模式未调通;2. Qt5.15.2源码编译后,验证可用性;2. emmake替换make通过;1. 验证工程完成样例调通;3. 验证工程编译摸索中;

2023-05-16 23:14:14 77

原创 Qt5.15.2替换mingw32-make.exe为emmake

从项目->build->构建步骤可以看出,构建过程中先用qmake生成makefile,构建(make)过程用make和前面产生的makefile生成目标程序的exe或者其他。(这是qmake的工作,可以在.pro中用message($$CONFIG)来查看CONFIG变量的内容,qt生成一个Makefile就会输出一遍message内容,如果同时生成debug和release的makefile,message的内容就会在qt creator的概要信息窗口输出显示两遍,可以通过在message前加“!

2023-05-16 15:30:35 567

原创 Qt for WebAssembly

WebAssembly 是一种二进制格式,允许在网页中使用沙盒可执行代码。这种格式几乎与本机机器代码一样快,现在所有主要的 Web 浏览器都支持这种格式。Qt for WebAssembly是一个允许您构建Qt应用程序的应用程序,可以集成到您的网页中。一个平台目标,用于使用 WebAssembly 为 Web 浏览器编译 Qt 应用程序。部署emscript 1.39.8:git下载对应版本,激活,bat配置环境变量;部署git,生成keypair,设置pubkey;部署python2.7,配置环境变量;

2023-05-12 14:09:51 1086

原创 工作日记NO.6

(3)创建带名称编组,并删除指定名称的编组内所有实体和编组;创建块,删除快参照;(1)进行Qt 5.15.2 Webassembly验证;2. 通过编写命令熟悉objectARX;(1)支持圆心、半径、直径、同心圆、多次的画圆命令;(2)学习ObjectARX的对象引用关系。(2)画直线、多线段、画三角形并填充;1. 练习使用AutoCAD;

2023-05-11 17:23:25 76

原创 objectARX ACED_ARXCOMMAND_ENTRY_AUTO

定义理解。

2023-05-10 16:21:47 940

原创 objectARX 定义块、删除定义块或快参照

对于有灰度值的屏幕则是一个灰度值,此函数功能为设置实体的颜色。当前图形数据库-->块表-->检查该块定义是否在块表存在-->存在,则通过定义名称,找到实体idlist。当前图形数据库-->组字典-->组名对应组id-->组id对应组实体-->遍历组实体的实体,打开并删除。第二步:遍历块表的实体id,若属于某定义块idlist且存在块参照,则设置实体为不透明;第一步:通过块定义名称找到实体idlist。2. 根据定义删除块(块参照)4.根据组名删除块(清除组)②0:表示不显示,透明。①1:表示显示,不透明。

2023-05-10 10:32:45 1758

原创 工作日记NO.5

2. 圆弧画圆:选定已存在的圆弧,将其转化为圆;4. 删除块以及块参照。3. 遍历块内实体;

2023-05-10 09:36:23 77

原创 【objectARX学习计划】

acedGetString、acedGetPoint、acedGetInt、acedGetKword和acedGetReal等。操作图层(创建图层、删除图层、修改图层颜色、线型)2、使用对象命名字典来保存与对象无关联的数据。1、使用扩展字典来保存对象的附加数据。1、向实体追加各种类型的扩展数据。2、判断对象是否已经包含扩展数据。3、遍历结果缓冲区链表的方法。在ObjectARX中使用MFC。扩展数据、扩展记录和对象字典。创建和编辑基本图形对象。创建带有属性的块定义。插入带有属性的块参照。

2023-05-09 23:48:44 788

原创 objectARX CString未定义标识符与常用字符类型转换

T("\n指定圆的半径或[直径(D)]:") 格式: const wchar_t *_RXST("\n objIdList为:%d"), objIdList.length()"\n指定圆的半径或[直径(D)]:" 格式: const char *2.圆弧hua'yua选定已存在的圆弧,将其转化为圆。"\n objIdList为:%d"

2023-05-09 22:51:26 1064

原创 objectARX 多线段 AcDbPolyline

AcDbPolyline 创建的是一个曲线,一个实体。

2023-05-09 18:35:44 586

原创 objectARX 填充 AcDbHatch

2. 输入命令,选择三条边,回车完成填充;1. 画三条边组成闭合曲线,三角形;

2023-05-09 18:24:45 487

原创 工作日记NO.3

CAD画圆。

2023-05-09 14:37:57 112

原创 工作日记NO.4

T("\n指定圆的半径或[直径(D)]:") 格式: const wchar_t *_RXST("\n objIdList为:%d"), objIdList.length()"\n指定圆的半径或[直径(D)]:" 格式: const char *2.圆弧画圆:选定已存在的圆弧,将其转化为圆。"\n objIdList为:%d"

2023-05-09 14:33:30 72

原创 objectARX typedef 带来的陷阱

答案是否定的,原因很简单,typedef 是用来定义一种类型的新别名的,它不同于宏,不是简单的字符串替换(有关 typedef 和 #define 的区别,请猛击这里了解详情)。因此,“const PCHAR”中的 const 给予了整个指针本身常量性,也就是形成了常量指针“char*const(一个指向char的常量指针)”。即它实际上相当于“char*const”,而不是“const char*(指向常量 char 的指针)”。

2023-05-09 14:19:24 65

原创 objectARX acarray.h详解

/若类型T不支持memcpy,需要对类型T重新定义实现memcopy函数,则是AcArraybjectCopyReallocator,进行ObjectCpy的数组分配器类。//若类型T支持memcpy,则该模板类是AcArrayMemCopyReallocator,进行memcpy的数组分配器类。//该选择器结构体,仅包含一个分配器类,进行memcpy的数组分配器类或者进行ObjectCpy的数组分配器类。//该结构体模板是,由类型T和bool决定的,拷贝项目的数组选择器;

2023-05-09 13:56:08 259

原创 工作日记NO.2

(11条消息) 未定义标识符_T_North Fish的博客-优快云博客。

2023-05-06 18:37:46 776

原创 工作日记NO.1

开发工具:VS2022、vscode、sublime;2. 学习并完成emscriptem编译c++文件项目。开发环境: vmware+centOS'工程管理软件:SVN、git;3. 安装docker python3。工作交互软件:钉钉、微信;

2023-05-06 18:13:34 91

原创 【linux基础】fork与vfork

vfork()除了不拷贝父进程的页表项外,vfork()和fork()功能相同:子进程作为父进程的一个单独的线程在他的地址空间里运行,父进程被阻塞,直到子进程退出exit()或执行exec()。子进程是 父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。fork():通过拷贝当前进程创建一个子进程,子进程和父进程的区别仅仅在于PID(每个进程唯一)和PPID(父进程的进程号)和某些资源统计量。父进程的fork函数返回的值指向子进程的进程id, 因为子进程没有子进程,所以其fork函数返回的值为0.

2023-04-14 17:44:51 685

原创 【线程编程】线程编程之Pthreads

C语言提供了多种多线程并发的框架和库,其中最常用的是 POSIX线程库(Pthreads)。Pthreads库提供了一套标准的API,使得开发者可以轻松地编写多线程并发的程序。这是一套由POSIX提出的通用的线程库,在Linux平台下被广泛支持。使用pthread库需要包含头文件,并在编译时加上-lpthread选项。使用pthread库可以创建、终止、等待、同步和管理线程。

2023-04-14 15:11:34 970

原创 模板与泛型编程

条款1:了解隐式接口和编译期多肽条款2:了解typename的双重意义条款3:学习处理模板化基类内的名称条款4:将与参数无关的代码抽离templates条款5:运用成员函数模板接受所有兼容类型条款6:需要类型转换时请为模板定义非成员函数条款7:请使用traits classes表现类型信息条款8:认识template元编程...

2018-05-16 15:52:42 161

转载 override

https://www.cnblogs.com/xinxue/p/5471708.htmlC类型强制转换   形式:(type)object或type(object)最好是使用type(object);原因是:在某些编译器下,(type)object不会调用构造函数,而type(object)下则肯定会调用构造函数C类型强制转换会按照以下顺序进行尝试转换:a. const_castb. stati...

2018-05-14 16:13:11 1021

原创 C++11中的匿名函数(lambda函数,lambda表达式)

立即执行函数1.         connect(&m_configAutoTstTimer, &QTimer::timeout, [&]()    {        if (!m_isConfigChanged)        {            slotUpdateConfig((m_devFlags & (~(1 << BITNUM_MAIN...

2018-05-14 15:50:19 335

原创 十六进制 QString 转QString

在升级实现过程中,为了制作唯一的升级文件,所以升级过程中绑定了设备ID。然而设备ID字符串比较特殊,都是奇怪的字符,上位机工具不方便输入,故统一做十六进制字符串输入。因此才有了如下问题。一般16进制Qstring转Qstring如下即可:Qstring str("704e0520361c5434"); QByteArray temp("");  temp.append(str);QByteArra...

2018-04-08 17:44:13 3052

原创 Openssl命令制作证书

1.生成私钥openssl genrsa -out rsa_private.key 10242.使用私钥生成公钥openssl rsa -in rsa_private.key -pubout -out rsa_public.key3.生成自签名证书openssl req -new -x509 -days 365 -key rsa_private.key -out cert.cer -subj "/...

2018-04-08 17:42:46 312

原创 如何判断system命令执行结果

1. 先来看一下system()函数的简单介绍:1#include <stdlib.h>2int system(const char *command);system() executes a command specified in command by calling /bin/sh -c command, and returns after the command has bee...

2018-04-04 17:15:33 6849

原创 Qt的qDebug使用

使用 " qDebug() << "一定要添加头文件 #include <QDebug>然而 int num = 20; char str[20]="hello world"; qDebug("如果只写在括号里,是不需要QDebug头文件的 %d %s", num, str);消除qDebug()打印qDebug的打印信息,主要是为了方便调试程序时尽快找到bug,所以当...

2018-04-04 11:23:18 52238

空空如也

空空如也

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

TA关注的人

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