- 博客(117)
- 收藏
- 关注
原创 Easy Conan + CMake template for C++ projects
【代码】Easy Conan + CMake template for C++ projects。
2024-03-11 12:06:10
592
原创 打造自己的AIGC应用(一)入门篇
其实细数AI的发展历程非常之久,而让AI的应用一下子出现在人们眼前的其实就是,这意味着AIGC应用已经从概念为王变的非常实用了。伴随着ChatGPT的出现,大量的开源大模型也如雨后春笋一样出现。就现在而言,。
2024-02-25 17:24:39
1771
1
原创 嵌入式面试题
3)用static修饰函数:对函数的连接方式产生影响,使得函数只在本文件内部有效,对其他文件是不可见的(这一点在大工程中很重要很重要,避免很多麻烦,很常见)。解析:回答这个问题前需要知道malloc的作用和原理,应用程序通过malloc函数可以向程序的虚拟空间申请一块虚拟地址空间,与物理内存没有直接关系,得到的是在虚拟地址空间中的地址,之后程序运行所提供的物理内存是由操作系统完成的。若str1>str2,则返回正数。做嵌入式,对于内存是十分在意的,因为可用内存有限,所以嵌入式笔试面试题目,内存的题目高频。
2023-12-04 13:51:18
575
原创 glibc源码阅读
pthreadtypes.h source code [glibc/sysdeps/nptl/bits/pthreadtypes.h] - Codebrowser
2023-09-20 15:22:04
252
原创 C++实习生面试题
7、介绍下四种强制转化const_cast、static_cast、dynamic_cast、reinterpret_cast。8、map和unordered_map的区别,底层数据结构,查找的复杂度分别为多少?1. 责任心, 所作的项目有没有全部负责到底,有没有追求极致的精神。5、进程通信的方式?12、函数返回一个对象内存是怎么实现的?4、构造函数可以调用虚函数吗?6、HTTP和HTTPS的区别。2、虚函数和纯虚函数的区别。10、堆排序是怎么实现的?9、自旋锁和互斥锁的区别。1、进程和线程的区别。
2023-02-16 13:35:13
672
1
原创 find_package()的使用
Config模式下的查找顺序,比Module模式下要多得多。根据cmake官方文档可以知道,find_package()有Module模式(基本用法,basic signature)和Config模式(full signature,完全用法),其中Module模式是基础,Config模式则更复杂高级些。前面提到说“如果Module模式查找失败则回退到Config模式进行查找”,但是假如设定了MODULE选项,那么就只在Module模式查找,如果Module模式下查找失败并不回落到Config模式查找。
2023-01-03 10:29:28
1405
原创 Rancher清理主机节点残留数据的方法
有了这个清理添加rancher主机节点失败的方法后,我们添加主机节点的成功率大大提高了,效率也蹭蹭往上涨了。
2022-10-07 21:40:51
1353
原创 一文带你彻底厘清 Kubernetes 中的证书工作机制
接触 Kubernetes 以来,我经常看到 Kubernetes 在不同的地方使用了证书(Certificate),在 Kubernetes 安装和组件启动参数中也需要配置大量证书相关的参数。但是 Kubernetes 的文档在解释这些证书的工作机制方面做得并不是太好。经过大量的相关阅读和分析工作后,我基本弄清楚了 Kubernetes 中证书的使用方式。
2022-10-05 19:53:29
1007
原创 5G注册流程详解
出现重选AMF的场景基本就是同一区域下可能有两个厂家的AMF POOL覆盖,我们又要指定区域下的UE注册在指定的AMF上,比如CRAN基站的覆盖,可能就会出现AMF重选,但是此时AMF需要通过TAC来区分不同的区域,否则核心网无法引导UE在指定的AMF POOL注册。原本切片之间的隔离性就破坏了。从现网信令来看,该厂家的设备目标AMF完整执行了注册流程全图的Step 4-22,目标AMF没有跳过鉴权,相当于带AMF重选的注册流程需要执行两次鉴权,注册时延会增加,但注册成功率应当会由一定程度的提高。
2022-09-19 16:59:06
15368
1
原创 DPDK 全面分析
dpdk 绕过了 Linux 内核协议栈,加速数据的处理,用户可以在用户空间定制协议栈,满足自己的应用需求,目前出现了很多基于 dpdk 的高性能网络框架,OVS 和 VPP 是常用的数据面框架,mTCP 和 f-stack 是常用的用户态协议栈。很多大公司都在使用 dpdk 来优化网络性能。
2022-09-16 15:38:44
1273
原创 android V1,V2,V3,V4签名详解
最近帮测试做了一点关于签名的需求,今天就和各位同学简单聊一聊关于签名的那些事儿。如果问到 Android 为什么需要签名?
2022-09-16 10:30:58
1606
原创 智能座舱系列一:智能化基础平台及架构
过去的传统汽车供应链,是一个自底向上的供应商模式,从Tier 2零部件给到Tier1进行集成设计,再到OEM整车厂进行设备生产。现在新兴的自动驾驶、智能座舱、算法服务服务商参与进来后,产业的合作形态正在出现细分、交叉与耦合,从而出现了Tier0.5\Tier1.5这样的供应商概念。例如长城的仙豆智能、吉利的亿咖通等公司,他们从股权关系上讲,往往隶属于主机厂;从业务上讲往往又是独立的,为兄弟OEM公司提供产品、服务、数据支持,这种离OEM比Tier1更近的公司,被称为Tier 0.5。
2022-09-15 19:11:36
4564
转载 android aab技术详解
令我惊讶的是,这样一条“旧闻”最近却被炒得沸沸扬扬,原来竟还是因为蹭了鸿蒙的热度要知道AAB的首次亮相是在2018年的GoogleI/O上,难道彼时谷歌就遇见到鸿蒙的出现了?不过客观来说,AAB虽然早已出现,但在国内很少被提及,因此造成部分媒体的错误解读也有情可原。那么本文就为大家做一个关于AAB的科普,打消鸿蒙支持者们的顾虑。...
2022-07-18 19:16:27
2623
转载 Sqlite优化v2
如果我们在项目中有使用 SQLite,那么下面这个SQLiteDatabaseLockedException就是经常会出现的一个问题。归根到底是因为并发导致,而 SQLite 的并发有两个维度,一个是多进程并发,一个是多线程并发。下面我们分别来讲一下它们的关键点。多进程并发SQLite 默认是支持多进程并发操作的,它通过文件锁来控制多进程的并发。SQLite 锁的粒度并没有非常细,它针对的是整个 DB 文件。简单来说,多进程可以同时获取 SHARED 锁来读取数据,但是只有一个进程可以获取 EXCL
2022-07-18 19:07:18
1114
转载 Sqlite内核
在对数据进行修改操作之前,先要获取数据库文件的ReservedLock,ReservedLock和sharedlock的相似之处在于,它们都允许其它进程对数据库文件进行读操作。每个数据库连接都有自己私有的空间,所以页面的变化只对该连接可见,而对其它连接的数据仍然是磁盘缓存中的数据。从OS的角度来看,当一个文件创建时,大多数OS(Windows,Linux,MacOSX)不会向磁盘写入数据,新创建的文件此时位于磁盘缓存中,之后才会真正写入磁盘。如图,日志文件位于OS磁盘缓存中,而不是位于磁盘。...
2022-07-18 19:04:47
276
原创 【iOS】Teach you to build a mobile APM monitoring system
Keywords: Android iOS network xcode SDKAPM is the abbreviation of Application Performance Monitoring, which monitors and manages the performance and availability of software applications. Application performance management is very important for the continu
2022-07-11 11:02:17
1599
转载 深入浅出Yolo系列之Yolov5核心基础知识完整讲解
大白在之前写过《深入浅出Yolo系列之Yolov3&Yolov4核心基础知识完整讲解》对Yolov4的相关基础知识做了比较系统的梳理,但Yolov4后不久,又出现了Yolov5,虽然作者没有放上和Yolov4的直接测试对比,但在COCO数据集的测试效果还是很可观的。很多人考虑到Yolov5的创新性不足,对算法是否能够进化,称得上Yolov5而议论纷纷。但既然称之为Yolov5,也有很多非常不错的地方值得我们学习。不过因为Yolov5的网络结构和Yolov3、Yolov4相比,不好可视化,
2022-05-26 22:19:11
1021
原创 在Ubuntu18.04中安装ROS教程
1.创建虚拟机自定义安装,手动选择镜像文件,处理器选择1个处理器,8个核心,其他选择默认的即可。2.换源新装的虚拟机会提示更新(不是更新系统),建议换完源之后再更新。左下角点开,打开software&updates。选中源代码(最后一项),更换源,选择other,选择中国,推荐阿里云的镜像源。点击close之后选择reload。如果中途卡住可以选择终止,然后再更换下载源,点击revert,再次reload。3.设置软件源打开终端,选择下面其中一个软件源,然后..
2022-05-15 19:45:24
2126
原创 mac11.3成功编译taichi笔记
我的电脑配置我的开发环境xcodepython版本python3.9一、按照官方配置操作流程Developer installation | Taichi Docs这里有几个步骤要说明下1.Eigen的安装,这个库在指引中没有提到需要安装,但是实际编译的时候就会出错需要通过brew install Eigen来安装,安装完后进行拷贝才可以sudo cp -r /opt/homebrew/include/eigen3Eigen...
2022-03-11 16:21:38
972
1
原创 oc语言设计杂想
1.是什么触发了smalltalk的创作初衷?为啥会想到需要使用自省功能,c++出现的比较早所以并没有采纳smalltalk的理念
2021-07-01 22:03:19
125
1
转载 简单几招提速 Kotlin Kapt编译
应用Kotlin之后,涉及到注解的注解处理器依赖也会由annotationProcessor替换成kapt,和最初应用Kotlin一样,总会让人一种感觉,一番应用Kotlin和Kapt之后,编译耗时更长了,不过好在Kotlin和Google 在这一方面做了很多的优化和改进,本文将简单介绍一些配置,来实现项目编译关于kapt这方面的加速。开启Gradle 构建缓存支持(Gradle build cache support)默认情况下,kapt注解处理任务并没有利用开启gradle的构建缓存,需要我们手
2021-06-22 21:46:19
1173
原创 Mac底下java和jre路径
java_home路径:/Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
2021-05-08 12:49:45
1543
原创 oc中该使用lock还是gcd/syncronize
1. gcd简单轻便对于数据级别的加密无法实现2.lock有以下问题锁的粒度不好控制/容易死锁优势:可以数据级别加锁3.syncronize粒度过大,只能针对对象级别加锁
2021-03-16 10:56:18
161
原创 category和extension的区别
category和extension的区别就category和extension的区别来看,我们可以推导出一个明显的事实,extension可以添加实例变量,而category是无法添加实例变量的(因为在运行期,对象的内存布局已经确定,如果添加实例变量就会破坏类的内部布局,这对编译型语言来说是灾难性的)。 extension在编译期决议,它就是类的一部分,但是category则完全不一样,它是在运行期决议的。extension在编译期和头文件里的@interface以及实现文件里的@impleme
2021-03-10 15:33:41
659
原创 ios调试技巧
1.通过打log进行排查2.通过使用ios调试工具进行排查2.1 使用Analyze分析Xcode -> Product -> Analyze 即可进行静态分析。2.2 使用Debug Memory Graph调试1、开启Malloc stack logging2、在Xcode下面选择Debug Memory Graph3、如下图所示进行操作,链接到有问题的代码也可以通过下面的gif图查看具体的操作2.3 使用Leaks调试1、选中Xcode点击鼠标...
2021-03-10 15:19:23
520
原创 git配置一定要做的几个命令
1. git config branch.dev.rebasetrue;git config --global branch.autosetuprebase always2.$ git config user.name "jexchan"$ git config user.email "jexchan@gmail.com" ssh-keygen -t rsa -C "your_email@youremail.com"
2021-03-08 21:49:04
152
原创 加快github下载速度绝招
使用gitee.com同步先新建一个项目 选择导入已有项目3. 复制github仓库地址4. 填写地址5. 最后点击创建即可获取Github仓库中的所有文件和提交历史...
2020-01-09 22:05:27
1382
原创 Android 手机厂商推送服务调研
由于谷歌服务在国内不能用,Android 的推送真是一大痛点,但也推动了国内一批做第三方服务的厂商。第三方推送做的比较好的有极光、个推、百度、友盟,经过比较之后,最后选择了极光推送。其实这些第三方推送之间的差别并不太大,技术上都没问题,能不能收到推送,关键还是看前端进程是不是还活着,这也是影响推送成功率的关键。从我们App来看,Android的成功率一直不高,还不到iOS的五分之一。前...
2020-01-05 16:32:31
1988
原创 35张史上最全IT架构师技术知识图谱
1.1 架构师图谱1.2 Java架构师图谱1.3 微服务架构秘籍1.4 一致性图谱1.5 互联网大流量的方法1.6 安全秘籍1.7 阿里巴巴常用小框架1.8 架构方法论图谱1.9 设计模式秘籍图谱二2.1 JVM虚拟机垃圾回收图谱2.2 Java并发图谱2.3 Java集合图谱2.4 Java集合类图2.5 Java List类图2.6 ...
2019-12-23 00:20:02
687
转载 使用 BoringSSL 优化 HTTPS 加密算法选择(不同终端加密算法不同)
前不久,一位朋友在我博客评论中,问到:类似于 Google 那样电脑访问使用 AES,手机访问使用 CHACHA20 的算法是怎么实现的(详情)。最近我研究了一下这个问题,现在我的博客也支持这个特性了。今天抽空介绍一下我的实现步骤,供喜欢折腾的朋友们参考。对称内容加密我们知道,每个 TLS 会话都是在握手阶段通过非对称加密得出对称加密密钥,而本次会话双方一直会用这个密钥进行流量的对称加密。...
2019-12-18 08:39:17
3000
原创 HTTPS协议详解:TLS/SSL握手过程
1、握手与密钥协商过程基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程再看一张手绘时序图(1).client_hello在发送的 Client Hello 中会带上自己支持的加密算法,供服务端从中挑选。由于老旧客户端会支持一些不安全的加密算法,为了提高传输安全,通常会在服务端指定一个可用算法列表,最终使用的加密类型取决于二者的交集,并按服务端优先级取第一个;如果没...
2019-12-14 18:11:22
6339
3
原创 抓包那些事
1.根据进程过滤wireshark包mac:活动监视器查出需要进程所对应的进程号,然后根据进程号netstat -anbv | grep "进程ID"查出通讯到ip地址,再根据ip地址到wireshark中进行过滤windows: 有一个监控利器:microsoft network monitor...
2019-12-13 15:31:46
233
原创 网络链路不稳定的排查问题方法
概述当客户端访问目标服务器出现ping丢包或ping不通时,可以通过tracert或mtr等工具进行链路测试来判断问题根源。本文介绍如何通过工具进行链路测试和分析。详细信息本文分别介绍如下链路测试方法。链路测试工具 测试结果的简要分析 常见的链路异常场景 链路测试步骤 测试完成后的解决方法链路测试工具操作系统类型不同,链路测试所使用的工具也有所不同。简要介...
2019-12-12 21:25:30
7585
1
原创 tcp几个关键时长
正常的rtt在16-32ms之间,tcp数据包超时重传需要200ms以上,1. 发送方什么都没有收到, 默认参数sysctl -a | grep tcp_retries1,默认3次,即600ms2.发送方有收到接收方的ack,快速重传机制,实现了另外的一种丢包评定标准,即如果我连续收到3次dup ACK,发送方就认为这个seq的包丢失了,立刻进行重传Tcp连接超时第 1 次...
2019-12-12 18:15:11
1010
转载 Homebrew 更换阿里云镜像源
你可能有过这样糟糕的经历,当你满心欢喜的敲下 “brew install 应用名称”,静静的等待安装结果的时候,Homebrew在 Updating Homebrew卡死了。Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。使用 阿里云 的 H...
2019-12-03 09:50:49
3379
转载 iOS疑难问题排查之深入探究dispatch_group crash
起因昨天其他部门的同事突然反馈一起相对来说比较严重的Crash问题(占比达到了yyyy左右,并且从Crash堆栈上可以发现很多情况下是一启动就Crash了)。去掉隐私数据大致堆栈如下:Thread 0 Crashed:0 libdispatch.dylib 0x000000018953e828 _dispatch_group_leave :76 (in ...
2019-11-09 18:39:59
3855
3
转载 js对象内存模型
Interesting PointsAll instances inherit from the prototype object of the function that created them. Mozilla/Konqueror have animplementation-specific__proto__property that points to the protot...
2019-10-05 18:57:31
282
转载 Top 10 DTrace scripts for Mac OS X
Since version 10.5 “Leopard”, Mac OS X has hadDTrace, a tool used for performance analysis and troubleshooting. It provides data for Apple’sInstrumentstool, as well as a collection of command line ...
2019-09-10 17:28:27
820
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人