Home
工程师部落
Cancel

Java 并发编程 -ThreadPoolExecutor

ThreadPoolExecutor 线程池中的核心线程不会自动销毁,而是会根据线程池的配置(核心参数)和状态,在特定条件下被回收(销毁) 或复用,核心原则是:尽量复用线程以减少创建/销毁开销,仅在空闲时间过长或线程池收缩时销毁线程。 关键结论 核心线程(corePoolSize):默认情况下(allowCoreThreadTimeOut=false),核心线程会一直存活,即使空闲也...

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

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

Java性能分析第五节 - Linux 下 Java应用性能分析技巧.

性能优化机会 使用更加高效的算法 对应用程序进行性能优化,往往采用更加高效算法或数据结构,以减少 CPU调用,内存使用,更短的执行路径实现业务功能 减少锁竞争 对共享资源的竞争会导致程序性能无法随着线程数和CPU增加,提升程序性能。我们代码中应该减少锁竞争频率,缩短是有锁的时间。该类典型的现象是CPU利用率很低,但是接口响应很慢 为算法生成更有效的代码 这个主要是JIT 生成更加有效的机器代...

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 依赖外,示例代码运行还需要...

字节码增强