点墨

28
获赞数
4
关注数
3
粉丝数
上海
IP 属地上海
2021-10-22 加入
浏览 11.4k

全栈前端开发工程师

26 声望|新手
自动化
8
qt
8
python
8
javascript
6
grid
5
黄金勋章
暂未获得该勋章
如何获得
白银勋章
暂未获得该勋章
如何获得
个人动态
  • 发布了文章6 月 24 日
    likely()/unlikely()宏的编译器优化机制分析
    在Linux内核源码中,我们经常看到if(likely(condition))和if(unlikely(condition))这样的代码结构。这些宏通过指导编译器进行分支预测优化,可以显著提升程序性能。本文将深入分析其工作原理,并通过汇编代码展示实际优化效果。
  • 发布了文章6 月 5 日
    编译器优化对多线程数据竞争的影响分析
    在多线程编程中,我们常遇到一个反直觉现象:关闭编译器优化反而能暴露预期的数据竞争问题。本文通过分析MSVC编译器对同一代码的不同优化策略,揭示现代编译器如何通过指令重排和内存访问优化,彻底改变多线程程序的执行轨迹。
  • 发布了文章5 月 29 日
    Spring Boot 监控缺失 JVM 指标的根源解析与终极解决方案
    在基于 Spring Boot 的微服务监控体系中,结合 spring-boot-starter-actuator 与 micrometer-registry-prometheus 实现指标暴露是标准方案。但当遇到 JVM 指标缺失 且控制台出现 Bean 'XXX' is not eligible for getting processed by all BeanPostProcessors 警告时...
  • 发布了文章5 月 23 日
    Qt connectiontype
    Qt::AutoConnection:默认,如果信号和槽在同一线程,使用DirectConnection;否则使用QueuedConnection。
  • 发布了文章5 月 8 日
    chrome浏览器取消置顶
    在使用google chrome浏览器的时候,发现chrome被置顶,其他窗体看不到了,取消chrome默认的方法为在浏览器上按 "ALT + Space + C",然后重新打开chorme就可以了。
  • 发布了文章3 月 14 日
    qt输出源码日志
    在QT源码里,很多qCDebug打印的日志,如何输出?在C:\Users{yourname}\AppData\Local\QtProject增加日志配置文件qtlogging.ini如果需要开启全部日志,则配置如下所示: {代码...} 如果需要开启部分模块日志,比如开启lcQpaWindows,首先需要找到lcQpaWindows对应的模块字...
  • 发布了文章2 月 14 日
    webdriverio入门
    搭建一个webdriverio进行自动化测试步骤创建目录 {代码...} 初始化 {代码...} 安装wdio/cli {代码...} 修改package.json,添加配置脚本 {代码...} 执行配置脚本 {代码...} 下载chromedriver,与你浏览器版本需对应(比如我是133.*,就下133版本) {代码...} 修改wdio.con...
  • 发布了文章2 月 14 日
    下载chromedriver报错
    原因是它要用到对应版本的chromedriver二进制文件(我的是133版本),会自动从storage.googleapis.com下载,而由于某些原因,我们访问不了该网站
  • 发布了文章2024-12-23
    winform checkbox binding报错,无法将值格式化为所需的类型
    使用winform的bingding对checkbox组件值进行绑定,发现报错,如下所示:保存组件值代码如下: {代码...} 将checkbox的值格式化为String,保存为文本,然后写入文件回填组件值代码如下: {代码...} 当值为True的时候,会报错解决方法回填组件的代码修改为如下: {代码...} 使用...
  • 发布了文章2024-12-06
    qt endRemoveRows 卡顿问题
    使用qt6.2.3开发列表,发现在删除行的时候,会出现无响应,CPU飙升,如下图所示经过排查,最终定位为QAbstractItemModelPrivate::rowsRemoved方法,如下图所示当前persistent_moved的大小为table的(row * column)persistent_moved是在QAbstractItemModelPrivate::rowsAbout...
  • 发布了文章2024-12-05
    windows下使用visual studio 2019编译QT源码
    使用vs自行编译QT源码步骤下载对应的QT源码[链接]下载Visual Studio 2019(以下简称VS)配置好C++环境打开VS命令行工具打开源码目录执行 configure(使用skip排除不需要编译的模块) {代码...} 编译 {代码...} 安装 {代码...} 完成问题Forcing to "ON" breaks its condit...
  • 发布了文章2024-12-05
    QT批量UI操作
    在QT批量操作的时候,可以选择先将渲染关闭,用户操作关闭,等执行完后,开启渲染,开启用户操作 {代码...}
  • 发布了文章2024-11-22
    QT 使用SetOverlayIcon设置任务栏图标
    在QT里,结合使用ITaskbarList3的SetOverlayIcon方法,可以实现消息提醒功能。效果如下:Window API[链接]代码如下:green.ico是一个16*16大小的iconmainwindow.h {代码...} mainwindow.cpp {代码...}
  • 发布了文章2024-08-07
    QT 弹出框设置宽高0不生效
    QT将QWidget设置为Tool弹出框,业务上需要根据实际回填内容改变窗体高度,比如一条数据30px高,那么空的时候为0,n条的时候为n*30。然后发现空的时候高度被固定为了160;
  • 发布了文章2024-08-06
    QT 使用QMenu崩溃
    QT,使用QMenu的时候,在action里面执行注销,删除了窗体,导致了崩溃测试代码: {代码...} 解决方法:将delete改为deleteLater()即可注:setMenu不会将menu的生命周期交给pushButton管理,也就是说如果new的时候不设置parent,menu就会成为野指针(内存泄漏)
  • 发布了文章2024-08-01
    java调用native方法
    java调用native方法。环境:jdk:11idea:2024visual studio:2019c++:14步骤使用IDEA创建java工程创建NativeCppMethod类 {代码...} 使用javac -h 生成对应的c++头文件生成的NativeCppMethod.h {代码...} 使用VisualStudio创建C++动态库将jdk里的jni.h和jni_md.h头文件,...
  • 发布了文章2024-06-26
    QT QList迭代器失效问题
    原因分析:原因在于QList<int> temp = ranges,拷贝ranges到temp上,QT底层是将ranges的地址赋值给temp,此时调用temp.cbegin()获取的是ranges的const 迭代器it1,然后调用temp.begin(),底层会调用(detach->d.detach->reallocateAndGrow),将内存块拷贝到新的...
  • 发布了文章2024-06-15
    QList与std::vector性能比较
    测试环境:windows11测试IDE:qt creator 13.0.1 Qt:6.2.3测试编译器:MSVC 2019 64bit代码 {代码...} 运行结果结论QList性能能满足大部分场景,vector在删除头时性能逊于QList
  • 发布了文章2024-06-07
    c++ 测试函数调用性能
    使用Lambda函数表达式,使用成员变量std::function存储Lambda函数,使用成员变量st::function存储类成员函数,分析调用性能
  • 发布了文章2024-05-17
    c++ 位操作
    c++位操作 {代码...}