Home
工程师部落
Cancel

Java 中自己实现 RPC 中 异步转同步

核心实现原理 RpcResponseFutureManager: 核心管理器,使用 ConcurrentHashMap 存储 CompletableFuture,实现请求ID与Future的映射 异步转同步流程:客户端发起请求时创建 Future 异步发送 RPC 请求 调用 future.get() 阻塞等待响应 服务端处理完成后通...

Java性能分析第四节 - Linux 下 JVM监控.

监控 与 性能分析 监控 监控通常是指一种在生产,质量评估或者开发环境中带有预防或主动性的活动。当应用负责人收到性能问题却没有足以定位问题的线索,首先会查看性能监控,随后性能 分析。 性能分析 性能分析是一种侵入方式收集运行性能数据的活动,他会影响应用的吞吐量或响应时间。性能分析是监控报警后的回应,关注并监控更加集中。 JVM 监控 一、Linux 下 JVM 内存监控 Linux 下 常...

Java性能分析第二节 - Linux 下 内存监控.

一、基本信息和工具 服务器配置 阿里云上ECS服务器,配置为2核4G为例 压测工具 wrk, 下载见 wrk下载和安装 压测脚本 wrk -t 2 -c 500 -d 60s --latency http://localhost:8080/mem?count=1000 Java版本:JDK21,启动命令:java -jar -Xms1024m -Xmx1024m -XX:N...

Java性能分析第二节 - Linux 下 CPU 监控.

一、基本信息和工具 服务器配置 阿里云上ECS服务器,配置为2核4G为例 压测工具 wrk, 下载见 wrk下载和安装 压测脚本 wrk -t 2 -c 500 -d 60s --latency http://localhost:8080/json?count=1000 Java 核心代码,用于压测,来观测CPU负载 @GetMapping("/json") p...

Java性能分析第一节 - 策略,方法 和 方法论.

一、性能优化的总体目标 核心目标: 用尽可能少的资源(CPU、内存、IO、网络),实现更高的吞吐量、更低的响应时间、更稳定的系统。 性能优化维度:吞吐量、响应时间、可伸缩性、稳定性。 吞吐量优化(Throughput) — 单位时间处理更多请求; 响应时间优化(Latency) — 缩短单个请求的处理时间; 可伸缩性优化(Scalability) — 支持更多并发用户、任务;...

本地部署:如何本地化部署开源大模型ChatGLM3-6B

环境准备 Python 3.9.6 MacBook Pro M1 32G Pycharm 注意 对于搭载了 Apple Silicon 或者 AMD GPU 的 Mac,可以使用 MPS 后端来在 GPU 上运行 ChatGLM3-6B。需要参考 Apple 的 官方说明(https://developer.apple.com/metal/pytorch/) 安装 PyTo...

大模型微调:如何基于ChatGLM3-6B+Lora

ChatGLM3-6B 微调 本目录提供 ChatGLM3-6B 模型的微调示例,包括全量微调和 P-Tuning v2。格式上,提供多轮对话微调样例和输入输出格式微调样例。 如果将模型下载到了本地,本文和代码中的 THUDM/chatglm3-6b 字段均应替换为相应地址以从本地加载模型。 运行示例需要 python>=3.10,除基础的 torch 依赖外,示例代码运行还需要...

字节码增强

px,pt,em换算表

pt (point,磅):是一个物理长度单位,指的是72分之一英寸。 px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时一般都有DPI可选。Windows系统默认是96dpi,Apple系统默认是72dpi。 em(相对长度单位,相对于当前对象内文本的字体...

同步与异步 And 阻塞与非阻塞

同步与异步 关注两个进程间通信方式,同步是A进程调用B进程后需要等待B进程执行完成后,A进程才会继续向下执行。异步是A进程调用B进程后,A进程会立即继续向下执行 阻塞与非阻塞 了解 阻塞与非阻塞 首先需要熟悉两个概念 内核空间 与 用户空间 内核空间和用户空间,操作系统为了安全,用户空间是没有权限操作硬件设备的,比如网卡。所以需要通过内核空间与硬件设备间的交互。 内核空间存储的代...