自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

John_ToStr的博客

C/C++领域优质创作者

  • 博客(208)
  • 资源 (5)
  • 问答 (16)
  • 收藏
  • 关注

原创 Chromium 跨模块单例失效问题与接口注入解决方案

Chromium 跨模块单例失效问题与接口注入解决方案

2025-06-13 10:26:34 17

原创 深度解析 Windows 内存:虚拟内存与物理内存余量,评估内存不足阈值必看

Windows系统中,虚拟内存和物理内存余量是评估系统性能的关键指标。物理内存余量直接反映可用RAM资源,当其低于总内存10%或绝对值低于4MB时,系统将因频繁调用虚拟内存而出现卡顿。虚拟内存作为硬盘上的应急存储空间,虽能扩展内存使用范围,但读写速度远低于物理内存。评估内存不足应以物理内存余量为主,辅以PageReads/sec等硬页错误指标,而虚拟内存数据则用于确认物理内存不足引发的性能影响。优化时应优先扩容物理内存,合理设置虚拟内存大小,确保系统稳定运行。

2025-06-12 11:22:17 558

原创 浏览器后台服务 vs 在线教育:QPS、并发模型与架构剖析

本文深入分析浏览器后台服务与在线教育平台在高并发场景下的架构设计差异,涵盖 QPS(每秒请求数)承压能力、服务模型、数据一致性、容灾机制等多个维度,力图为系统架构师和后端工程师提供实战参考。

2025-06-06 18:26:36 906

原创 从导航到渲染:Chromium 核心架构与开发者进阶路径

本文详细解析了Chromium浏览器从URL输入到页面渲染的完整流程,重点介绍了导航机制、多进程架构、网络服务化和渲染合成等核心技术。文章剖析了NavigationController、RenderFrameHost、NetworkService等核心模块的协作关系,阐述了SiteIsolation安全机制和Viz合成架构的工作原理。同时为开发者提供了分阶段的学习路径建议,从WebContents基础到Blink/V8高级开发,并推荐了关键调试工具。全文系统性地展现了Chromium作为现代浏览器内核的复杂

2025-06-06 14:51:19 535

原创 Chrome 浏览器前端与客户端双向通信实战

本文系统梳理了Chromium前端与C++后端的交互机制,重点分析了三大典型场景:1)WebUI页面通过WebUIMessageHandler与C++交互;2)扩展插件使用chrome.runtime.sendMessage调用ExtensionFunction;3)底层功能通过Mojo接口实现高性能通信。文章详细解析了各场景的技术实现路径、核心组件及调用流程,并对比了chrome.send()、chrome.runtime.sendMessage()和Mojo三种通信方式的特点与适用场景,为浏览器底层开发

2025-06-06 12:03:28 703

原创 脑力劳动中的压力管理与职场生存之道:从自我剖析到博弈思维

脑力劳动中的压力管理与职场生存之道:从自我剖析到博弈思维

2025-06-03 10:21:01 344

原创 30+程序员的职业突围:如何将经验转化为可持续竞争力

摘要: 本文针对30+程序员面临的职业危机,提出从技术执行者向价值创造者的转型方案。核心内容包括:1)四条发展路径分析(技术专家/管理/跨界/生活平衡);2)经验资本化三大策略(技术产品化、认知预判、人脉网络);3)6个月转型计划分阶段执行表;4)31岁必建的三大防火墙(健康/财务/信息)。强调在AI时代,程序员的竞争力在于解决未定义问题的能力,需通过持续输出技术产品、预判行业趋势、经营有效人脉来实现职业跃迁。文末提供可落地的检查清单和资源包。

2025-05-27 15:05:11 823

原创 悬空指针问题回顾与实践总结(Dangling Pointers Retrospective)

本文总结了Chromium项目中悬空指针问题的根源及解决方案。统计显示,39%的问题需主动重置指针,25%源于销毁顺序不当,24%可通过智能指针替代裸指针。主要解决策略包括:优先使用unique_ptr/weak_ptr管理所有权、调整成员变量声明顺序、及时注销观察者回调、利用工具检测潜在风险。对于特殊场景,建议采用ID间接访问、任务队列绑定生命周期或ExtractAsDangling()等安全措施。现代C++实践能解决大多数问题,剩余情况需结合显式指针管理策略。这些方法显著提升了代码健壮性,有效预防崩溃和

2025-05-26 14:48:41 870

原创 Chrome 开发中的任务调度与线程模型实战指南

本文档概述了Chrome浏览器中的线程和任务系统,重点介绍了多进程架构下的线程管理方法。主要内容包括: 核心概念 任务(Task):工作单元,使用base::OnceCallback或base::RepeatingCallback创建 线程池:共享任务队列的物理线程池 序列(Sequence):虚拟线程,保证任务顺序执行 任务发布方式 并行任务:使用base::ThreadPool::PostTask*() 顺序任务:使用base::SequencedTaskRunner 单线程任务:使用base::Sin

2025-05-26 11:54:52 1037

原创 深入解构 Chromium 升级流程与常见问题解决方案

本文详细记录了从老旧Chromium版本升级至114版本的完整流程,涵盖版本评估、代码迁移、构建适配等功能环节。重点分析了升级过程中面临的技术挑战,包括API接口变更、Mojo架构调整、Blink层重构及沙箱策略强化等问题,并提供了针对性的解决方案。文章特别强调了模块解耦设计、沙箱权限审查和性能优化等关键点,分享了对齐工具链、回归测试和灰度发布等实践经验。最后总结了定期升级、维护兼容层和利用社区资源等核心建议,为浏览器内核升级提供了实用技术参考。

2025-05-26 11:46:28 862

原创 本地进程间通信方式全面总结与对比(含 socketpair 实战)

本文介绍了使用socketpair实现进程间通信的方法,并分析其在Chromium Mojo IPC中的应用。首先对比了多种IPC机制的特点和适用场景,重点说明socketpair作为本地全双工通信方式的优势。随后给出了一个RAII风格的socketpair封装示例,演示父子进程间通信的实现。文章详细剖析了Mojo IPC架构中socketpair的使用流程,包括PlatformChannel的创建、Invitation传递和MessagePipe建立过程。最后总结了socketpair在构建高效IPC系统

2025-05-26 11:09:08 436

原创 Chromium 中 scoped_refptr 实现的深度解析

本文详细介绍了Chromium中scoped_refptr智能指针的设计思想、实现细节及其与标准库智能指针的对比。scoped_refptr基于RAII原则,通过构造函数和析构函数自动管理引用计数,避免内存泄漏。其设计专为Chromium的线程安全引用计数对象优化,采用分离计数策略和类型系统约束确保线程安全。性能优化方面,通过最小化开销和避免虚函数调用提升效率。关键实现包括构造与析构、引用计数策略控制、跨类型转换支持和线程安全保证。与std::shared_ptr相比,scoped_refptr更轻量且直接

2025-05-19 15:34:41 873

原创 Chromium 浏览器核心生命周期剖析:从 BrowserProcess 全局管理到 Browser 窗口实例

Chromium浏览器架构中,BrowserProcess和Browser是两个核心类,分别管理浏览器进程的全局状态和单个浏览器窗口的实例。BrowserProcess作为单例全局管理器,负责维护跨所有浏览器窗口共享的资源和子系统,如网络、缓存和策略服务,其生命周期贯穿整个浏览器进程运行期间。Browser类则代表单个浏览器窗口实例,管理标签页、地址栏等UI组件,其生命周期随窗口的打开和关闭动态变化。两者之间存在强依赖关系,Browser实例依赖BrowserProcess的全局服务,而BrowserPro

2025-05-19 15:03:15 693

原创 Chromium 回调设计实战:BindOnce 与 BindRepeating 的最佳实践

在Chromium的base库中,base::BindOnce和base::BindRepeating是两种用于创建回调的模板函数,主要区别在于调用语义和所有权模型。base::BindOnce生成的base::OnceCallback只能调用一次,适合一次性操作如异步任务,且通过移动语义传递参数,性能更高效。base::BindRepeating生成的base::RepeatingCallback可多次调用,适合重复事件如按钮点击,但可能有额外开销。选择时,优先使用base::BindOnce,除非需要多

2025-05-19 14:27:07 1127

原创 用 RefCounted + WeakPtr 构建线程安全的异步模块

用 RefCounted + WeakPtr 构建线程安全的异步模块

2025-05-19 12:11:11 268

原创 可重入(Reentrant) vs 线程安全(Thread-Safe)

可重入(Reentrant) vs 线程安全(Thread-Safe)

2025-05-19 11:21:36 878

原创 Lambda 表达式底层实现机制 vs 成员函数/静态成员函数可替代性对比

Lambda 表达式底层实现机制 vs 成员函数/静态成员函数可替代性对比

2025-05-19 11:11:56 699

原创 chrome源码中WeakPtr 跨线程使用详解:原理、风险与最佳实践

WeakPtr 跨线程使用详解:原理、风险与最佳实践

2025-05-19 10:27:53 1208

原创 深入理解浏览器渲染引擎:底层机制与性能优化实战

本文深入探讨了现代浏览器渲染引擎的工作原理,特别是Blink和V8引擎的协作机制。文章首先概述了浏览器的多进程架构,包括浏览器进程、渲染进程、GPU进程和网络进程的功能。接着,详细解析了渲染引擎的核心步骤,从HTML和CSS的解析到DOM和CSSOM的构建,再到渲染树的形成、布局、绘制和最终的合成阶段。文章还探讨了JavaScript引擎与渲染引擎的交互方式,以及如何通过优化策略减少重排和重绘,提升页面渲染性能。最后,提供了Chromium源码的调试路径和实用建议,帮助开发者更好地理解和优化渲染流程。

2025-05-15 17:43:14 1224

原创 深入解析浏览器内核:V8 引擎与渲染引擎 Blink 的协作机制

本文深入探讨了V8 JavaScript引擎与Blink渲染引擎的协作机制,揭示了现代浏览器高效运行的秘密。首先,文章概述了V8和Blink的架构,包括V8的解析器、解释器、优化编译器和垃圾回收器,以及Blink的DOM树构建、样式计算、布局、绘制和合成功能。接着,详细解析了两大引擎的底层协作机制,如绑定系统、事件循环集成和内存管理协同。文章还提供了性能优化实战,包括JavaScript执行优化和DOM操作优化,并探讨了高级协作场景如WebAssembly加速和并发解析优化。最后,文章介绍了调试与性能分析工

2025-05-15 17:38:00 599

原创 Chromium Content API 深度解析:构建现代浏览器的核心引擎

Chromium Content API的诞生标志着浏览器架构的重大革新,其核心在于解耦传统单体架构,采用分层沙箱模型、弹性进程池和Zygote预孵化技术,优化了进程和线程管理。Mojo IPC系统通过类型系统的元编程实现和死锁防御机制,提升了跨进程通信的效率和安全性。渲染管线通过关键路径优化技术和GPU加速,提高了从DOM到像素的渲染效率。安全沙箱通过多种防御措施,增强了浏览器的安全性。网络栈通过分层缓存拓扑和协议栈热切换,优化了网络性能。开发者生态通过调试协议扩展和边缘计算集成,提供了更强大的开发工具。

2025-05-15 17:26:31 943

原创 中途接手需求+带新人:一套实用的拆解与推进方法

中途接手需求+带新人:一套实用的拆解与推进方法

2025-05-08 16:42:41 797

原创 深入解析主线程退出与子线程管理:何时 Join(),何时 Detach()?

深入解析主线程退出与子线程管理:何时 Join(),何时 Detach()?

2025-03-31 18:31:31 353

原创 「深入解析 Chromium Message Pump:消息循环的核心驱动」

「深入解析 Chromium Message Pump:消息循环的核心驱动」

2025-03-31 16:36:00 934

原创 大型软件开发团队成员能力评估的多维视角

大型软件开发团队成员能力评估的多维视角

2025-03-21 10:39:32 935

原创 《浏览器开发者的硬核战场:如何高效解决崩溃、升核与性能优化?》

《浏览器开发者的硬核战场:如何高效解决崩溃、升核与性能优化?》

2025-03-21 08:51:00 512

原创 深入解析 Service Worker 在 Chrome 扩展中的应用

深入解析 Service Worker 在 Chrome 扩展中的应用

2025-03-20 15:12:46 1326

原创 浏览器性能优化工具之DevTools

浏览器性能优化工具之DevTools

2025-03-19 14:24:34 466

转载 windbg经典死锁排查(转)

windbg经典死锁排查(转)

2025-03-19 10:02:59 55

原创 Git 代码合并最佳实践:如何合理选择 Merge 或 Cherry-Pick?含常见问题解答

Git 代码合并最佳实践:如何合理选择 Merge 或 Cherry-Pick?含常见问题解答

2025-03-14 15:01:47 905

原创 深入解析 Delegate 模式:提升代码解耦性的最佳实践

深入解析 Delegate 模式:提升代码解耦性的最佳实践

2025-03-14 10:19:02 661

原创 浏览器崩溃的常见原因及排查方法

浏览器崩溃的常见原因及排查方法

2025-03-13 19:12:46 891

原创 操作系统如何管理内存分配与释放,防止访问已释放内存

操作系统如何管理内存分配与释放,防止访问已释放内存

2025-03-13 17:47:16 945

原创 悬挂指针与野指针:如何避免常见内存问题

悬挂指针与野指针:如何避免常见内存问题

2025-03-13 17:40:56 342

原创 「初入职场能力释放曲线:过早展现全力的战略风险与机遇成本」

「初入职场能力释放曲线:过早展现全力的战略风险与机遇成本」

2025-03-13 08:15:32 643

原创 「线上日志写入的蝴蝶效应:浏览器崩溃链路的实证研究与防御机制」

「线上日志写入的蝴蝶效应:浏览器崩溃链路的实证研究与防御机制」

2025-03-13 08:09:36 877

原创 chrome内核大版本升级涉及核心事项

chrome内核大版本升级涉及核心事项

2025-03-12 08:11:29 1080

原创 chrome扩展机制剖析

chrome扩展机制剖析

2025-03-11 19:23:50 121

原创 chrome插件加载机制剖析

chrome插件加载机制剖析

2025-03-11 19:23:18 135

原创 chrome源码中非常巧妙、复杂或者不常见的技术手段

chrome源码中非常巧妙、复杂或者不常见的技术手段

2025-03-11 19:12:36 1640

深入解析 Delegate 模式:提升代码解耦性的最佳实践

关于这个设计思想的chrome源码附件,供参考

2025-03-14

网络安全-疱丁解马-木马查杀深度剖析

《庖丁解马-木马查杀深度剖析》围绕木马查杀展开,为读者提供了全面且深入的知识。 一、基础概念与原理 木马知识扫盲 介绍计算机基本组成,如 CPU、内存、磁盘等,以及程序、进程、自启动程序和注册表等概念,为理解木马运行机制奠定基础。木马是为特殊目的制作并植入计算机的程序,其运行依赖于这些系统元素。 进程相关知识 讲述如何查看进程,包括使用系统自带任务管理器和专业工具狙剑,介绍进程的重要信息及区分系统进程和非系统进程的方法。同时详细阐述了无进程木马的几种类型(DLL 注入型、线程注入型、纯驱动型和利用技术手段隐藏进程的木马)及其查杀方法。 二、查杀重点内容 自启动项查杀 讲解注册表基础知识,包括其结构、重要性和操作方法。介绍开机自运行程序和触发式启动程序的启动位置及查杀要点,如文件关联式、自动播放式、感染式、修改式和事件触发式启动程序的原理和查杀手段,还涉及自启动项的隐藏、保护与查杀技术。 文件相关查杀 说明文件基本知识,涵盖文件格式、文件系统格式和文件读写机制。阐述文件的隐藏、查找、保护与删除方法,包括利用系统本身功能、规则以及技术手段隐藏文件的方式及相应的检测恢复方法。 三、总结与启示

2024-09-27

自动驾驶场景linux-perf 排查高延迟问题

自动驾驶场景linux-perf 排查高延迟问题

2024-08-02

JAVA核心知识整理.pdf

Java核心知识整理

2019-08-28

ROS1集成NanoSDK(mqtt over quic)库&&遇到的问题

ROS1集成NanoSDK(mqtt over quic)库&&遇到的问题

2024-05-07

Windows Hook案例分析与技术探索

Hook是Windows中提供的一种用以替换DOS下“中断“的系统机制,中文译为“挂钩”或“钩子”。在对 特定的系统事件进行Hook后,一旦发生已Hook事件,对该事件进行Hook的程序就会收到系统的通知, 这时程序就能在第一时间对该事件做出响应。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有 到达目的程序前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理 (改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。 文章通过案例结合代码分析每一种Hook类型底层实现机制以及跟逆向工程的关系引申

2022-06-24

Windows Inline Hook代码实现细节

实现简单的add函数dll注入hook,内嵌汇编代码&&windowsAPI,达到修改其返回结果的效果。

2022-04-18

c++ Trunk技术代码分析

c++ Trunk技术代码分析

2022-05-11

CentOS 编译出来的.so文件,在别人的虚拟机上动态加载报错(自己虚拟机可以被正常加载) 什么原因?

2020-04-25

最新版本,原生的odl是否支持高并发请求(我指的是互联网行业类似于秒杀系统架构)(代码层面跟涉及框架)

2019-07-23

vs2008调试代码时卡死(有时候在模板中有时候不在)一般是什么问题呀

2017-03-21

家里的路由器接了两个主机,一个能用一个用不了,ip都设的是自动获取

2016-12-11

vs2008编译器在调试的时候不能看stl中set类型对象的内存吗?

2016-11-28

关于vector承载上千万数据量的时候申请内存出错

2016-09-19

关于boost的问题,boost::progress_display无法写入文件的问题。

2016-08-10

MFC程序推出,进程却未退出,问题一般出在哪?

2016-03-24

MFC XML文件写入时 < 变成了 &dt; > 变成了&gt;

2016-03-23

读取位置 0x00000000 时发生访问冲突。

2016-03-21

MFC对话框程序,莫名其妙的崩了

2016-03-17

求大神解答,关于内存解析以及类型转换的编译器底层实现,图中的结果请给我一个完整的解释,谢谢

2016-01-25

MFC中, win764位的代码在控件上面显示汉字没问题, 但是到了win732系统显示汉字为乱码

2016-01-21

关于cout对函数输出的问题

2015-12-31

关于线程内创建socket create函数返回空的情况。。。。

2015-12-31

为什么Free ARC这款压缩软件 比 其他压缩软件压缩比高出了近30%

2015-12-26

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

TA关注的人

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