linux环境常用的性能监控和协助开发调试工具_s1mba的博客

linux有诸多优秀的工具帮助我们分析服务器各项性能指标和协助开发调试工作。下面只列举比较基础的命令,且一般是集成在linux环境中而不需再次安装的命令。更多更详细的命令可以参考 https://github.com/brendangregg/perf-tools   A 、CPU进程相关 常用工具列举下:uptime、ps、top、mpstat、pidstat等  uptime: 查看系统运行时间,平均负载等。 ps:可查看某个进程占用CPU资源百分比;查看线程信息  ps -eLf  top...阅读全文

CSDN博客 2022-05-24 18:36 CSDN博客

Java中RandomAccessFile用法

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。 文章目录 介绍 RandomAccessFile 使用 创建对象 写方法 读取方法 介绍 java.io.RandomAccessFile 1、读写文件的工具 2、将文件中的字节数据,当作数组,用下标访问指定位置的字节值 RandomAccessFile 既可以读取文件内容,也可以向文件输出数据。同时,RandomAccessFile 支持“随机访问”的方式,程序快可以直接跳转到文件的任意地方来读写数据。 由于 RandomAccess...阅读全文

掘金 2021-10-08 00:00 掘金

重新认识 Java 中的内存映射 mmap

mmap 基础概念mmap 是一种内存映射文件的方法,即将一个文件映射到进程的地址空间,实现文件磁盘地址和一段进程虚拟地址的映射。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页到对应的文件磁盘上,即完成了对文件的操作而不必再调用 read,write 等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享。操作系统提供了这么一系列 mmap 的配套函数void *mmap(void *start, size_t ...阅读全文

知乎 2021-11-17 19:43 知乎

RandomAccessFile类使用详解_Simon_night的博客

RandomAccessFile类使用详解 疯狂java讲义读书笔记之RandomAccessFile类的使用详解 1.RandomAccessFile特点   RandomAccessFile是java Io体系中功能最丰富的文件内容访问类。即可以读取文件内容,也可以向文件中写入内容。但是和其他输入/输入流不同的是,程序可以直接跳到文件的任意位置来读写数据。   因为RandomAccessFile可以自由访问文件的任意位置,所以如果我们希望只访问文件的部分内容,那就可以使用RandomAcc...阅读全文

CSDN博客 2016-05-12 14:56 CSDN博客

Java IO学习笔记三:MMAP与RandomAccessFile - Grey Zeng

作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和FileReader/Writer 普通的Reader和Writer只能顺序读写数据,RandomAccessFile提供了一个独有的seek方法,可以修改文件内容的指针,从而可以方便读取和修改文件中的任意位置。示例: import java.io.RandomAccessFile; import jav...阅读全文

博客园 2021-06-12 17:23 博客园

malloc中的系统调用brk和mmap - 一生热爱

malloc中的系统调用brk和mmap 环境 ubuntu14.04 malloc通过系统调用的方式从操作系统申请内存,malloc内部又通过系统调用brk()或mmap来申请内存的。入下图进程虚拟内存布局所示,mmap对应Memory Mapping Segment,brk对应Heap. brk brk通过增加program break的位置(brk)从内核申请(非零值初始化)内存。一开始堆段(heap segment)的其实位置(start_brk)和结束位置(brk)指向同一个位置。 当...阅读全文

博客园 2021-06-04 14:10 博客园

换个数据结构,IntObjectHashMap 内存优化

各种资源,各种教程,请=》 当时其实我是被他的这个图片给吸引到了(里面的 12 qps 应该是 12k qps): 他介绍了两个核心系统在经过一个“数据压缩”的操作之后,分别节约了 204C 和 2160C 的服务器资源。 共计就是 2364C 的服务器资源。 如果按照一般标配的 4C8G 服务器,好家伙,这就是节约了 591 台机器啊,你想想一年就节约了多大一笔开销。 视频中介绍了几种数据压缩的方案,其中方案之一就是用了高性能集合: 因为他们的系统设计中大量用到“本地缓存”,而本地缓存大多就是...阅读全文

CSDN博客 2022-03-31 18:53 CSDN博客

设计模式--谈谈Reactive Programming 响应式编程_enjoy编程的博客

1. Reactive Programming 响应式编程 1.1. 什么是什么是响应式编程 维基百科的解释如下: In computing, reactive programming is an asynchronous programming paradigm concerned with data streams and the propagation of change. This means that it becomes possible to express static (e.g...阅读全文

CSDN博客 2023-06-07 18:16 CSDN博客

响应式编程入门之 Project Reactor

本文目标理解响应式编程前言之前的 《聊聊 IO 多路复用》 中,我们理解了非阻塞 IO 的意义。但是 Spring MVC 并不能完美的应用非阻塞编程,于是 Spring 团队开发了 WebFlux,而 WebFlux 的基础正是本文要讲到的 Project Reactor(下文简称为 Reactor)本文以 Reactor 为例带大家入门响应式编程版本 <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-c...阅读全文

知乎 2022-07-14 22:23 知乎

Spring WebFlux-入门

webflux是什么 webflux是spring推出的响应式web框架,它的对标产品为spring-mvc, 与传统的spring-mvc相比较,webflux是完全非阻塞式的。spring官网上的这张图向我们展示了两者之间的主要差别: 编程模式:命令式编程(mvc:imperative) VS 声明式编程(webflux:declarative) 在mvc中,我们在方法为单位,组织我们的每一条命令,虚拟机按照我们的编排,顺序地执行这些命令,程序执行 流程易于理解,编程和debug较为简单 在...阅读全文

掘金 2021-08-27 17:03 掘金

深入浅出分析LSM树(日志结构合并树)

零、前言最近在调研NoSQL数据库,发现RocksDB、LevelDB、HBase以及Prometheus等,其底层的存储引擎都是基于LSM树,于是决定花时间彻底吃透LSM树这一数据结构。不幸的是,在查阅资料学习的过程中,发现网上各种文章汗牛充栋、抄来抄去,不是文不对题就是不知所云。一气之下决定自己写一篇出来消消气,便有了这篇文章。。。PS:学了这么多数据结构,LSMTree应该是最年轻的一个,它在1996年被设计出来(属老鼠的),年纪比我还小~相比于B/B+树或者倒排索引,LSMTree采用了...阅读全文

知乎 2021-09-30 18:13 知乎

RocksDB原理及应用

RocksDB概述LSM 类存储引擎、数据库之一。所谓LSM,一般的名字叫 Log Structured-Merge Tree(日志结构合并树),来源于分布式数据库领域,也是BigTable 的论文中所使用的文件组织方式。它的特点在于写入的时候是append only的形式,就像名字所显示的那样,跟日志一样只在文件后面追加。LSM 树结构的问题: 写入速度快,读取速度慢,写放大和读放大都较高。Rocksdb本身支持单个kv的读写和批量kv值的读写。由于LSM的出身,它专注于利用LSM树的特性,适...阅读全文

B+ Tree、LSM、Fractal tree index 读写放大分析 ·

Home Github About 28 September 2016 B+ Tree、LSM、Fractal tree index 读写放大分析 最近刚看完一个还不错的基于B+ Tree实现的kv引擎,借着这股劲儿刚好补充了一下相关理论知识,对比着看其他资料(资料1、资料2、资料3、资料4)看了下《A Comparison of Fractal Trees to Log-Structured Merge (LSM) Trees》论文,我比较愿意扣细节,所以看得那叫一个费劲,不过里面的分析还挺有...阅读全文

kernelmaker.github.io 2023-05-11 16:41 kernelmaker.git 等

OpenTSDB 数据存储详解

本文首发于 vivo互联网技术 微信公众号链接: https://mp.weixin.qq.com/s/qayKiwk5QAIWI7-nyD3FVA作者:DuZhimin随着互联网、尤其是物联网的发展,我们需要把各种类型的终端实时监测、检查与分析设备所采集、产生的数据记录下来,在有时间的坐标中将这些数据连点成线,往过去看可以做成多纬度报表,揭示其趋势性、规律性、异常性;往未来看可以做大数据分析,机器学习,实现预测和预警。这些数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、严重...阅读全文

roaringBitMap简介 - DB乐之者

如何优雅高效的在海量数据存储与查找 对于这个问题我们首先可能会想到直接去存储这40亿个数据,当然这确实是一种方法。但是我们是否考虑过这样做的后果呢?如果你的解决方案就是上面的那种方法的话,那你可能真的没有考虑过后果。所以你有必要继续往下读。 我们先不管后果是什么,现在我来带大家看一组数据,假设这40亿个数据是4个字节的unsigned int 型的数据。那嘛现在 我们要存储这40亿个数据就需要的空间为:(40 * 10^8) * 4byte = 14.9GB (注意这里所换算机制:1GB=2^1...阅读全文

博客园 2022-02-10 12:34 博客园

还在为如何高效绘制时序图而苦恼?让PlantUML来拯救你!

作为一个软件攻城狮,在日常板砖中,经常会涉及到和其他模块的交互,为了理清这些交互关系,我们需要绘制各个模块间的时序交互图。以前绘制这些交互时序图,用的都是visio,实际使用下来感觉也不是很方便(可能我比较菜,不是visio大神),痛点如下:在绘制时序图时,我们经常会对各个模块的位置和交互的线序进行调整,用visio画图的话,调整模块位置和线序真是又酸又爽。2. 操作不够行云流水,一会儿拖个框,一会儿打个字,要是画图都能像打字一样方便该多好。3. OFFICE全家桶的启动速度你懂得。。。从学生时...阅读全文

PlantUML 快速入门(一) UML 类图_fundroid的博客

大家平日在写技术文档时,往往都有画 UML 图的需要,很多人使用 PrecessOn 或者 darw.io 等来绘制 UML ,勉强可用但是不够专业。这里为大家推荐一个专门画UML的工具: PlantUML 1. PlantUML PlantUML 诞生于 2009 年,知道的人多但是使用的人少。因为它使用特殊的 DSL 进行画图,相较与其他工具,PlantUML 的图不是“画”出来的而是“写”出来的。 虽然有一定学习成本,但是却可以画出更专业的UML图,而且文本格式也便于保存。本文总结 Pla...阅读全文

CSDN博客 2021-10-07 17:49 CSDN博客

drawio——一款开源免费的流程图绘制软件

先放链接为敬。从上大学开始写论文,流程图也成为不可或缺的一种论文配图,流程图除了表示算法思路,在展示技术路线、整理大纲逻辑、绘制PPT等方面简洁明了、逻辑清晰的效果实在是好,但在电脑上绘制流程图没有“利器”可不行。细数一下我曾用来画过流程图的软件:最早是在Word和PPT文档中添加图形绘制,效率是真的低,规整对齐是真难;后来Microsoft Office里增加了SmartArt功能,模板样式多样化了,但自定义修改可真够麻烦╮(╯▽╰)╭;之后在Xmind也尝试绘制流程图过,但Xmind毕竟是主...阅读全文

知乎 2020-08-11 23:16 知乎

RoaringBitmap使用指南-Java快速入门教程 - JackYang

1. 概述 在本教程中,我们将了解RoaringBitmap。我们将使用对一组的一些基本操作作为RoaringBitmap的示例。此外,我们将在 Java 中的RoaringBitmap和BitSet之间执行性能测试。 2. RoaringBitmap简介 RoaringBitmap数据结构由于其高性能和压缩比,通常用于分析、搜索和大数据项目。它背后的想法来自位图索引,这是一种用于有效表示数字数组的数据结构。它类似于JavaBitSet,但经过压缩。 压缩大整数集,同时保持对单个元素的快速访问是...阅读全文

博客园 2023-02-24 12:24 博客园

创建本地yum仓库

本文分享自天翼云开发者社区《创建本地yum仓库》,作者: zzzzgj;背景有的部署环境不通外网,但希望继续使用yum命令下载依赖包而不修改部署脚本逻辑。因此记录一个本地repo的建立方法。1、获取依赖包# 如在通网的机器上下载openssl-devel所有依赖yumdownloader --resolve --alldeps openssl-devel2、创建仓库创建一个(本地)存储库并用yum它来解决您的依赖关系。CentOS wiki提供了一个如何做到这一点。CentOS wiki How...阅读全文

java技术圈 2023-04-23 16:33:08 Ceshi