@天下第九九八十一 强啊 居然还真有人拿去用了 哈哈
Duilib性能优化——列表控件Duilib中本来就有列表控件CListUI,但是它不适用于数据量较大的情况: 每一个item都会在内存中有对应的控件实例,浪费内存。 列表每一次layout都会处理全部的项...
@天下第九九八十一 强啊 居然还真有人拿去用了 哈哈
Duilib性能优化——列表控件Duilib中本来就有列表控件CListUI,但是它不适用于数据量较大的情况: 每一个item都会在内存中有对应的控件实例,浪费内存。 列表每一次layout都会处理全部的项...
最近工作中进行项目模块化,根据功能分类,将项目由一个整包拆分为一个个framework,各个framework之间相互依赖,涉及到动态库和静态库相互依赖,这里写篇摸索笔记,记...
简单总结,详见参考资料。 引用计数的实现方式 引用计数是与对象绑定的,并且可能有多个shared_ptr绑定同一对象,为了达到同时更新多个shared_ptr的引用计数,所以...
@永乐茶坊 特定机器才有问题吗 先spy++看窗口能不能正常收到WM_MOUSE系列的消息
Duilib源码解析——控件寻找鼠标点击了一个按钮之后,是怎样触发到对应的按钮的事件的?首先,鼠标点击触发一系列Windows消息,这里以WM_LBUTTONUP举例说明消息处理过程:首先,windows消...
上次看了个某个浏览器的网址补全,感觉比较弱鸡,所以想起来研究一下chromium是怎么实现这个地址匹配的。这个东西还是有点意思的,可以根据URL或title进行匹配,输入的单...
PE文件的内容分为不同的块/节(Section),块中包含代码或数据,各个块按页边界对齐,块没有大小限制,是一个连续结构。PE文件不是作为一个整体被载入内存的而是分节加载的。...
众所周知chrome的web开发者工具也是基于web实现的,crx扩展可以实现自己的开发者工具扩展,例如图中的adblock有开发的需要就有调试的需要,如果想对浏览器的F12...
主要翻抄自陈硕的书和博客条件变量只有一种正确使用的方式,几乎不可能用错。对于 wait 端:1.必须与 mutex 一起使用,该布尔表达式的读写需受此 mutex 保护。2....
Cookies这部分的源码位于net/cookies与net/extras中,代码量不算多的,但是感觉其中有点细节,如果不是结合着对应的需求去看,确实没办法把所有细节都看透,...
强引用、弱引用 强引用影响对象的引用计数,进而影响对象的生存期。弱引用不影响对象的引用计数,在功能上类似于普通指针,但是弱引用能检测到所引用的对象是否已经被释放,从而避免非法...
从base/task_scheduler/task_traits.h中的枚举量TaskShutdownBehavior可以看到,chromium针对投递的task在浏览器退出...
Duilib中本来就有列表控件CListUI,但是它不适用于数据量较大的情况: 每一个item都会在内存中有对应的控件实例,浪费内存。 列表每一次layout都会处理全部的项...
基本语法就不谈了。 值捕获 值捕获就相当于在创建lambda对象时复制了一份所捕获的变量; 如果以传值的形式捕获外部变量,那么,lambda 体不允许修改外部变量; 可以使用...
源码位于base/memory/singleton.h首先平时很多资料都会讲到双检测锁(DCL)实现。但是DCL单例已经被证明不是线程安全的,由于CPU的乱序执行,导致ins...
首先,常量表达式的概念:在编译期就可以计算出结果的表达式那么为什么要用常量表达式呢,用常量表达式会有什么好处:1.允许一些计算只在编译时进行一次,而不是每次程序运行时;2.编...
本篇分析base::SchedulerSequencedTaskRunner实现。SchedulerSequencedTaskRunner是SequencedTaskRunn...
以win32平台下chromium62版本代码为准。base::TaskRunner类,主要有以下几个实现:base::MessageLoopTaskRunner,任务投放到...
为什么要三次握手不能两次 为了防止已失效的连接请求报文突然又传送到服务端,从而产生错误。例如client发出的第一个SYN没有丢失,而是在某个网络节点长时间滞留了,以致于延误...