- 博客(13)
- 资源 (4)
- 收藏
- 关注
原创 timerfd_create 和 epoll_create1
是Linux系统提供的一种高级定时器接口,它允许应用程序创建一个特殊的文件描述符,该文件描述符可用于监控定时事件。当定时器触发时,内核会向这个文件描述符写入数据,应用程序可以通过读取这个文件描述符来检测定时器是否到期。相比于传统的alarmsetitimer等定时器接口,提供了更高的精度和更好的可移植性。通常和timerfd_settime配合使用。函数创建一个定时器文件描述符,参数表示使用单调时间作为计时基准,标志表示文件描述符为非阻塞模式并在进程退出时自动关闭。函数用于配置定时器,ts。
2024-07-07 15:35:32 884
原创 explicit 关键字
C++中的隐式转换主要包括以下几种类型:基本类型转换:例如,将整型(如)转换为浮点型(如),或者将短整型()转换为长整型()。这些转换通常在算术运算中发生,目的是使所有操作数具有相同的类型。 枚举类型转换:枚举类型的值可以隐式转换为整型,反之亦然,只要枚举值的范围在目标整型范围内。 指针转换:用户定义的类型转换: 引用和指针的上下文转换:在某些上下文中,引用或指针可以被转换为其所指向的类型。 explicit关键字过度依赖隐式转换可能导致意料之外的结果。例如,在比较不同类型
2024-07-06 18:56:14 569
原创 GPU基本概念
相比于CPU通过不断提升时钟频率以提高计算速度,GPU则不断增加计算单元数量。CPU的优势在于快速进行复杂运算,GPU的优势在于同时进行大量类似简单运算。如下图总结了CPU与GPU的特点差异:NVIDIA曾在一个发布会很形象地展示了CPU和GPU的工作差异,CPU只能逐个像素点计算并刷新,而GPU可以每个像素点单独计算并一起向屏幕刷新。
2024-01-05 20:45:48 462
原创 Vulkan-Samples Android 环境配置
Vulkan-Samples 是Android官方Vulkan C++示例的集合,其中包含一些Vulkan绘制示例。
2023-12-03 12:45:25 650
原创 静态局部变量
但有时候我们需要在两次调用之间对变量的值进行保存。通常的想法是定义一个全局变量来实现。但这样一来,变量已经不再属于函数本身了,不再仅受函数的控制,这给程序的维护带来不便。通常,在函数体内定义了一个变量,每当程序运行到该语句时都会给该局部变量分配栈内存。但随着程序退出函数体,系统就会收回栈内存,局部变量也相应失效。静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。
2023-11-05 15:39:20 57
原创 怎么看Android.bp文件
Android.bp 是 Android 编译系统从 make 系统切换到 ninja 系统过程中的产物,Android 7.0 和 8.0 是该编译系统切换的过渡期,所以在 Android 7.0 和 8.0 时既可以看到 Android.mk,也可以看到 Android.bp,但是从 Android 9.0 开始,在Android 源码里面 Android.mk 已经看不到了,只有少数 Vendor 厂家的代码里面还可以看到。
2023-11-05 09:57:13 139
原创 Anroid 弱指针
要想通过弱指针使用所指向的对象,首先通过promote()方法获取强指针。弱指针所指向的对象是有可能在其它地方被销毁的,如果对象已经被销毁,wp的promote()方法将返回空指针,这样就能避免出现地址访问错的情况。弱指针只是指向一个对象,仅记录该对象的地址,并未重载。()函数,不能通过弱指针来访问该对象。
2023-11-04 17:34:12 47
原创 C++ 内存序
与 consume 操作有依赖关系的指令都不会重排到 consume 操作前面. 它对重排的限制比 acquire 宽松些, acquire 要求所有的指令都不能重排到它的前面, 而 consume 只要求有依赖关系的指令不能重排到它的前面. 因此在某些情况下, consume 的性能可能会高一些。的操作不会产生任何其他的指令, 只会影响编译器的优化: 任何指令都不能重排到 acquire 操作的前面, 且不能重排到 release 操作的后面;C++内存关系和其他几种内存序。中较为详细的介绍了。
2023-11-04 16:22:13 76
原创 Ubuntu16.04 下安装arpack++
因为要用到arpack++包,在网上看了一些关于arpack安装的东西,感觉很麻烦,结果发现只要终端运行以下一条命令就可以: sudo apt-get install libarpack++2-dev...
2018-05-03 18:38:59 1466 1
原创 Ubuntu16.04下安装gtsam-3.2.1
GTSAM官网下载gtsam-3.2.1.zip文件,需依赖安装:BOOST version 1.43 or higher (install through Linux repositories or MacPorts)CMake (http://www.cmake.org/) 2.6 or higher解压gtsam-3.2.1.zip文件并到gtsam-3.2.1文件路径下执行:$ mkdi...
2018-03-09 15:21:05 9062 2
原创 Ubuntu16.04下汉化Kdevelop
1.下载汉化文件:访问https://l10n.kde.org/team-infos.php?teamcode=zh_CN利用相应svn命令下载Applications in stable kdelibs4-based和Documentation in stable kdelibs4-based ;或者直接下载我所上传的文件;2.新建.sh文件,这里命名为shelltest.sh,文件
2017-10-23 10:03:36 628
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人