- 博客(13)
- 收藏
- 关注
原创 std:shared_ptr源码解读
加锁的策略 _Lock_policy 这个模板类型,最终传递给了内部属性 _Sp_counted_base* _M_pi。_M_pi 继承了_Mutex_base,这个基类一看名字就知道是进行互斥控制的类。_Sp_counted_base 类中 有个属性:_Atomic_word _M_use_count ,引用计数数值,int类型。shared_ptr继承自__shared_ptr,其功能主要由父类__shared_ptr 实现。就是构造时传入的指针指向类型,
2022-10-10 11:38:07 600 1
原创 uring的测试
0.前提io_uring是 2019 年Linux 5.1内核首次引入的高性能异步 I/O 框架,能显著加速 I/O 密集型应用的性能。但如果你的应用已经在使用传统 Linux AIO 了,并且使用方式恰当, 那io_uring并不会带来太大的性能提升—— 根据原文测试(以及我们 自己的复现),即便打开高级特性,也只有 5%。除非你真的需要这 5% 的额外性能,否则切换成io_uring代价可能也挺大,因为要重写应用来适配io_uring(或者让依赖的平台或框架去适配,...
2022-01-18 17:12:47 1069
原创 go语言实现的AIO调用测试代码
package mainimport ( "fmt" "log" "os" "syscall" "unsafe")type zn_iocb struct { /* these are internal to the kernel/libc. */ aio_data uint64 aio_key uint32 aio_reserved1 uint32 /* common fields */ aio_lio_opcode uint16 /* see IOC.
2022-01-18 17:04:13 560
原创 AIO-linux的异步IO机制
BIO:线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。NIO:线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。AIO:线程发起IO请求,立即返回;内存做好IO操作的准备之后,做IO操作,直到操作完成或者失败,通过调用注册的回调函数通知线程做IO操作完成或者失败。异步I/O(AIO,asynchronous I/O),顾名思义,就是异步操作I/O。不像read/write那.
2022-01-18 17:03:04 972
原创 GO语言的系统调用
内核态内核态: 通常一个内核由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络,进程间通信等系统服务程序共同组成。其独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限,这种系统态和被保护起来的内存空间统称为内核空间。用户态: 应用程序在用户空间执行,它们只能看到允许它们使用的部分系统资源,并且只能使用某些特定的系统功能,不能直接访问硬件,也不能访问内核划给别人的内存范围。 当内核运行时,系统以内
2022-01-18 16:59:02 1599
原创 Bootstrap-Vue使用 b-select 的强制刷新 问题
背景描述:父组件传给子组件的参数(版本列表、选定的版本)变化时,需要刷新子组件的内容。场景为:父组件会增加版本列表,并且将新增的版本作为选定的版本。子组件使用 watch进行监听,子组件使用b-select 作为下拉框,其中:options="version_options" 中的列表为父组件传入的版本列表。子组件的代码如下: <b-select:options="version_options"v-model="vctl_version_selected"@inpu...
2020-05-09 12:22:51 873
原创 springboot 访问 HIVE 出错
org.apache.hadoop.ipc.RemoteException: Operation category WRITE is not supported in state standby at org.apache.hadoop.hdfs.server.namenode.ha.StandbyState.checkOperation(StandbyState.java:87)...
2018-12-20 11:38:29 1308
原创 关于spark 使用自定义类进行 RDD 间的i交并补操作时,不能进行比较的问题分析
spark 研发过程中使用 intersection/union等 算子时, 发现自定义类不能正确比较的问题。通过阅读spark 的源码,发现 需要自定义类覆写实现 equals 和 hashCode 两个函数,才能被spark 识别并正确执行。
2018-05-07 11:48:25 714
原创 奥林匹克竞赛题-判断先手必赢的问题
问题描述: 有 三个 盒子,每个盒子内有若干个球,两个人轮流取,每人每次只能从一个盒子内取至少一个球,取到最后一个球的人输。 比如3,4,5的话,先手通过特定的步骤能够获胜。问题分析:没有找到必胜的潜在规律,因此,编写遍历所有情况,以判断先手是否必胜。这是一个递归调用的问题,因此需要设置递归的结束条件。通过树汇总所有的情况,然后将可以胜利的每个步骤都打印出来。具
2018-04-23 13:47:41 1157
原创 Unity3d调用Android版so库
C源码封装Android版函数库工具介绍需要Android NDK工具包,下载地址为:https://developer.android.google.cn/ndk/downloads/index.html下载后解压后即可使用。(警告: 解压的路径不能带空格,最好都是英文路径) 添加ndk-build 指令的路径到path全局变量中测试安装成功,使用CMD窗口执
2017-08-16 14:41:53 2729 1
原创 FTP服务器搭建与权限配置
原始需求1. 在Ubuntu16.04系统上搭建FTP服务器;2. 每个项目只有项目参与人才能访问项目目录;3. 管理员可以访问所有项目目录; 可行性分析基于附录中的LINUX权限说明,每个新建的用户都只属于自己命名的群组,用户新建的文档、目录也都属于该群组。如果我们让管理员加入该群组,增加文档的群组权限,就能让管理员也访问该目录;我们将其他不在群组的用户权限设置为0,则其
2017-08-16 14:38:22 7785
原创 APS高级排产系统---frepple源码阅读分享
一. 安装以ubuntu14.04系统为例,系统的安装步骤为:1. 安装python2.72. 安装postgres3. 安装python模块:openpyxl4. 安装django 1.6.8 的版本。 将目录software_adds中的Django-1.6.8.tar.gz解压后,进入目录,执行:python setup.py install5. 开始安
2017-01-23 10:30:27 19340 3
翻译 opengl的GL_PROJECTION变换矩阵
opengl将一个点从摄像头坐标系(投影坐标系)转换到NDC(标准坐标系)的转换矩阵如下:眼睛坐标系的形状如下图第一个, 是一个平截头体。x轴方向上定义 r: right , l: left, y轴方向上定义 t: top, b: bottom, z轴方向上定义 n: near, f: far。每个摄像头根据焦距的不同,对应的上面的值也会有差别。根据实际情况调
2017-01-20 14:10:54 2606
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人