Android_chunhui
人不一定能什么都擅长,有自己的特点就好!
展开
-
智能指针原理以及常见坑、core
share_ptr以及weak_ptr成员关系。原创 2023-03-20 14:53:16 · 53 阅读 · 0 评论 -
lucene原理
一个索引中包含多个段,段与段之间相互独立。由于Lucene进行关键词检索时需要加载索引段进行下一步搜索,如果索引段较多会增加较大的I/O开销,减慢检索速度,因此写入时会通过段合并策略对不同的段进行合并。:保存了不同前缀对应的相应的Term及相应的倒排表信息,倒排表通过跳表实现快速查找,通过跳表能够跳过一些元素的方式对多条件查询交集、并集、差集之类的集合运算也提高了性能。:用于保存倒排索引Term的前缀,来快速定位.tim文件中属于这个Field的Term的位置,即上图中的aab、abd、bdc。原创 2024-06-16 23:20:53 · 1112 阅读 · 0 评论 -
系统设计 总结
缓存穿透:数据既不在缓存,也不在数据库中。一般由于业务误操作删除了缓存和数据库中数据,或者非法数据,比如恶意攻击。雪崩:大量缓存数据同时过期,或缓存服务器故障,会有大量请求同时打到数据库。击穿:属于雪崩的一种,热点数据过期或者系统资源限制被淘汰掉(lru)。原创 2024-11-28 11:11:47 · 169 阅读 · 0 评论 -
cacheline一致性、内存序、volatile
CPU cache有三级,其中L1、L2是每个core私有的,L3是公共的,cacheline是CPU cache中最小的缓存单位,CPU访问主存中某个数据时会将cache line大小的数据全部读入cache中,目前主流CPU的cacheline大小是64B,比如访问一个long数组,cpu每次会将8个值一起读到cache中,利用这个特性我们可以快速遍历连续内存的数据,比如数组;但是对于非连续性内存比如链表,每次都要从主存中读取数据。原创 2023-06-13 15:33:39 · 318 阅读 · 0 评论 -
Kafka相关知识
将每个Topic划分为多个分区Partition,每个分区时一组有序的消息日志,分区内每条消息都会关联一个连续的数字ID即offset,生产的一条消息只会送到一个分区上。topic是逻辑概念Partition是物理概念对用户透明,生产者只需要关心消息投递到哪个topic上消费者只需要关心在哪个topic行订阅数据。为了提高每个分区的可用性,分区也存在多个副本。图中相同颜色的分区互为副本。kafka存在两种模式:pull和pull模式。原创 2023-05-06 20:09:39 · 759 阅读 · 0 评论 -
分布式相关知识
分布式环境中的锁,当多个客户端进程访问同一资源时进行并发安全的保护。原创 2023-05-05 12:13:19 · 34 阅读 · 0 评论 -
操作系统 知识点
对于32位系统虚拟内存空间有4G,其中系统内存占高位地址的1G,进程内存最多占用3G,进程内部从低位到高位依次是.data段,.bss段,堆,mmap,栈。linux系统下默认栈空间大小为10M,也就是系统最多分配300个线程(3G/10M)。线程切换时机:时间片用完;线程阻塞(如等待IO时间、sleep)线程切换后被移入就绪队列。原创 2023-05-03 18:32:08 · 154 阅读 · 0 评论