跳至正文

读书笔记《现代C++语言核心特性解析》 | 前五章

介绍

是一本介绍C++11到C++20特性的书籍。
越来越多的项目迁移到了更新的标准上,毕竟带来了新的好用的特性,而且性能依然非常的高,需要学习一下。

不会大而全的记录,主要会是让我有所醒悟的内容。

基础类型

整型

新增了long long表示至少64位的整数,对应的还有LL和ULL的后缀。

long long x = 65536LL;
unsigned long long x = 65536ULL;

整型上限:

std::numeric_limits<long long>::min()
std::nu[......]

继续阅读

2024年学习记录

记录

一方面是持续提升自己,让自己未来在能够接到更重的工作的时候能够胜任;另外一方面也就是持续的学习,保持自己的竞争力,别哪天真的没工作干了。
作为技术人员,一方面要拥有很核心的技术,深度要深,广度要广,而且要持续跟进最新的知识,有持续的产出,所以,一方面努力学习,一方面努力写代码。

链接:
https://cpxwidm62n.feishu.cn/base/HRiqb4hAga8J77smUATcc8qenme?from=from_copylink

[……]

继续阅读

梳理python的import

  • 随笔

最近公司出了一个bug,我有点不太懂python循环import会发生什么,也不知道python是怎么处理的,周末顺着文档缕了一遍python的导入系统。

官方导入系统的文档:https://docs.python.org/zh-cn/3.12/reference/import.html
本文主要是记录一些细节、自己的理解以及一些注解。

基本介绍

import

import: import语句包含了两个操作:

  1. 它先搜索指定的模块,如果不存在会创建改模块;
  2. 然后将搜索结果绑定到当前作用域中;

展开来说,就是imp[……]

继续阅读

论抽象还得是C++

最近刷leetcode挺多的,在学算法的同时,还通过其他人的代码学了不少C++新标准的东西。
今天看到Split和Join,轮抽象还得是C++啊。
实现Split是很多语言都有的基础功能,C++迟迟没有推出,是因为有杠精觉得为什么一定要用std::vector呢?不能用std::list吗?
然后这次标准推出了一个新的抽象对象,View。

类似于python迭代器的一种抽象,包含了一个Ranges的一些信息,但是又没实例化。

论抽象还得是C++

[……]

继续阅读

游戏中AOI的思考

  • 技术

AOI的概念

AOI(Area Of Interest),通常是指服务端对玩家感兴趣领域的划分的技术。
这个技术的应用场景是服务端存在非常多的单位,客户端不需要渲染所有的单位,服务端也可以避免将所有单位的信息广播,所以其目的是降低客户端的渲染压力、减小服务端的带宽压力。

这个问题的指导思想就是:世界很大,我只看眼前,我只关注周围的单位,太远的单位我并不关心。

好久之前有一个小朋友问过我,背那些算法和数据结构的八股文有什么意义,我当时跟他说,这是你翻身的武器,我们不要文凭,不要出身,只要你能背下八股文就能给你高薪的工[……]

继续阅读

Linux库静态替换解析:为什么覆盖动态链接库so会导致进程闪退

  • Linux

总结

遇到一个这样的问题,我最近把公司git ci自动化的流程向更先进的开源社区的方式推进了一点,我们修改了服务端so库,将新编译的so用cp指令覆盖掉旧的so会直接导致所有进程闪退。

但是我们发现先rm旧的文件,再复制新的文件不会导致闪退,这个就非常纳闷了,处于不理解和好奇就深入研究了一下,最终总结是这样:

这个闪退应该是分了几个流程:

  1. 加载so的时候是把整个so用文件映射到内存里,然后利用文件系统的lazy_load读内存
  2. cp的时候会复用旧的inode,操作系统对这个文件的索引会被改变
  3. 程序读取到原来没有的[……]

    继续阅读

反思一下中途开香槟

  • 随笔

很久没好好开发了,之前一直推脱是卡在数值,但是功能上还有很多缺失,内心有点抵触这个各种事情的继续推进。

行百里者半九十,深刻体会到这句话,前面志得意满太多了,炫耀获得的满足感太多了。

心里就有一种很错位的自豪,这一件很伟大的事情我已经做完一半了,但是遇到真正的困难和复杂我就开始踌躇不前,我会找很多听起来合理的推脱借口,听起来一定是合理的,我这方面的嘴上功夫真的是一流的,我太清楚自己了。所以要彻彻底底从未来的结果倒推,东西能做出来那就OK,东西做不出来那就是又一次遇到demo向完整的作品转型会遇到的困难,然后自我垮掉[……]

继续阅读

修复了虚幻旋转的bug

  • 技术

昨天通宵定位修复了之前demo移动有问题的bug,还挺开心的,一个可能是因为误差导致的悬空,另外一个是官方的bug,也是我改了bug的同事还给官方提供了一个request,希望能过。

[……]

继续阅读

了解一下boost的fiber

fiber是纤程,用户级纤程,在用户层提供调度管理器,可以在系统线程上切换纤程,它主要的好处:

  • 切换非常快,按照boost的数据,快100倍[1]
  • 纤程访问父线程的数据不需要加锁,因为不具备竞争;
  • 基于完全同步的写法来实现的fiber阻塞和切换;

引用

  1. https://www.boost.org/doc/libs/1_83_0/libs/fiber/doc/html/fiber/performance.html
  2. https://blog.csdn.net/hezhanran/article/details/[……]

    继续阅读