Ohhnews

分类导航

foojay

我让GitHub Copilot分析Java应用,它发现了堆大小配置缺陷并主动提出修复

作者开发了JVM Pulse扩展,集成到GitHub Copilot中,实现对Java工作负载的自动性能分析。通过JairoSVG渲染基准测试示例,Copilot自动检测构建工具和JDK,运行工作负载并生成交互式仪表盘,展示吞吐量、暂停时间、堆占用等指标。系统指出堆容量接近100%导致大量超大对象分配(约43%为巨型区域),触发频繁GC。Copilot提供具体调优建议:增加堆大小至1G并调整G1HeapRegionSize为4m,同时指出代码层面的优化在于缓存复用BufferedImage缓冲区,而非依赖堆大小。最终Copilot主动提出运行实验验证改进。工具实现了从分析到假设到实验的完整科学循环。
#github copilot#java性能分析#jvm pulse#堆配置#垃圾回收优化
$ more
Jetbrains Blog

MPS 2026.1 正式发布

MPS 2026.1 版本正式发布。该版本基于 IntelliJ Platform 2026.1、JDK 25 和 Kotlin 2.3。主要新特性包括:Projectional Agent Toolkit 插件,允许 AI 编程代理通过模型上下文协议直接读取和编辑 MPS 模型,支持 Claude Code、OpenAI Codex 等代理;构建语言支持传递依赖,简化大型构建管理;迁移机制改为基于记录依赖而非当前状态,提升可靠性;新增只读检查器样式和自然语言名称检查支持。此外,Classic UI 插件默认禁用并将在未来版本中移除。
#mps#ai编程代理#intellij平台#语言工程#版本更新
$ more
Baeldung

Java程序如何获取自身进程ID

本文介绍了Java程序中获取当前进程ID的多种方法。在Java 9之前,没有标准API,通常通过解析RuntimeMXBean.getName()返回的字符串(格式为PID@hostname)来提取进程ID,但该方法存在实现依赖的不确定性。Java 9引入的ProcessHandle API提供了类型安全的pid()方法,直接返回long类型的进程ID。Java 10进一步在RuntimeMXBean中添加了getPid()默认方法,使得通过熟悉的ManagementFactory API即可获取进程ID。文章还展示了如何创建一个版本感知的工具类,优先使用最新的方法,并优雅降级到旧方法,以支持不同Java版本的兼容性。
#java#进程id#processhandle#runtimemxbean#系统管理
$ more
DZone Java

Jeffrey Microscope 中的 Java 差分火焰图

差分火焰图:精准定位性能变化 本文介绍 Jeffrey Microscope 的差分火焰图功能,它通过对比两个性能记录,用颜色编码展示每个方法的变化:红色表示新增或退化(开销增加),绿色表示改进(开销减少)。文章以 Java 序列化路径优化为例,演示如何设置基线配置、解读差分视图中的时间序列和火焰图,并区分共享帧与独有帧。读者可直观看到代码替换带来的性能影响,并扩展到 Wall-Clock 和 Allocation 维度的分析。
#差分火焰图#jeffrey microscope#java#性能分析#代码优化
$ more
InfoQ Java

谷歌Genkit推出Agents API预览版:支持分离轮次与人在回路

谷歌发布了Genkit Agents API预览版,支持TypeScript和Go语言。该开源框架将消息历史、工具循环、流式传输和状态持久化封装在单一chat()接口中。分离轮次允许客户端断开连接后代理继续工作,可中断工具则提供了人在回路控制,并在恢复时带有防伪验证。
#genkit#agents api#分离轮次#人在回路#typescript
$ more
Baeldung

在HandlerInterceptor中获取请求体与响应体

本文介绍了在Spring MVC应用中如何通过HandlerInterceptor记录HTTP请求和响应体,而不破坏@RequestBody的反序列化。文章首先分析了Spring MVC执行链中HandlerInterceptor的行为,指出请求体和响应体是流,只能被消费一次。然后使用ContentCachingRequestWrapper和ContentCachingResponseWrapper在过滤器(OncePerRequestFilter)中缓存请求和响应内容。接着在HandlerInterceptor的afterCompletion方法中读取缓存并记录,同时结合HttpMessageConverter完成后的时机。最后提供了示例REST API和集成测试代码。
#spring mvc#拦截器#请求体#响应体#http日志
$ more
DZone Java

Jeffrey Microscope:Java火焰图生成与分析工具

Jeffrey Microscope是一个开源的JFR(Java Flight Recorder)分析工具,可将JFR事件转化为交互式火焰图、时间序列等可视化视图。它支持三种快速启动方式:独立JAR(需Java 25+)、Docker容器以及预装示例记录的镜像。 文章详细演示了如何使用该工具分析火焰图:加载记录后,可在可视化页面选择CPU样本、内存分配、Wall‑Clock等事件类型生成火焰图;通过时间序列范围选择器可聚焦特定时段;搜索功能可快速定位栈帧并统计占比;帧提示显示total/self样本数、字节码索引、源代码行及JIT编译状态;“Copy for AI”按钮可将当前视图导出为Markdown格式供AI优化代码。此外还介绍了分配火焰图(支持按字节权重而非样本计数)、线程模式等高级选项。 本文为系列首篇,为后续差分火焰图对比优化前后性能差异奠定基础。
#jeffrey microscope#jfr#火焰图#性能分析#可视化
$ more
InfoQ Java

Java新闻汇总:TornadoVM 5.0 GA、JHipster、Google ADK、Payara的OmniFish构建及Vidocq登场

本周Java新闻汇总(2026年7月6日)重点关注:TornadoVM 5.0正式版发布;JHipster、Keycloak与Google ADK推出小版本更新;GraalVM Native Build Tools和Micronaut发布维护版本;OmniFish Build of Payara 发布;此外还介绍了基于Jakarta EE 11 Core Profile和MicroProfile 7.1的新实现Vidocq。
#java#tornadovm#jhipster#jakarta ee#微服务
$ more
Jetbrains Blog

ReSharper 2026.2 for VS Code兼容编辑器更新亮点

核心更新 ReSharper 2026.2 为 VS Code 及兼容编辑器带来多项重要改进: 调试功能:基于 JetBrains Rider 引擎,支持断点、变量检查、单步执行等。 值追踪:可视化数据流,快速定位值来源与去向。 调用/类型层次:支持方法调用链与类型继承关系的浏览。 项目结构优化:内联显示 NuGet 版本号,固定服务文件夹,新增“添加现有项目”选项。 以上功能均适用于 VS Code、Cursor、Google Antigravity IDE 等编辑器。
#resharper#vs code#.net#调试#代码分析
$ more
Jetbrains Blog

ReSharper 扩展终支持调试:VS Code 和 Cursor 中 .NET 调试功能正式上线

重大更新 经过一年多社区呼声,JetBrains 在 ReSharper 2026.2 版本中正式为 VS Code 及兼容编辑器(如 Cursor、Google Antigravity IDE、Devin Desktop、Kiro)添加了 .NET 调试功能。该调试器基于 JetBrains Rider 相同的调试引擎构建,支持断点管理(条件、命中计数、依赖断点及日志点)、实时变量与表达式检查、完整步骤导航(Step Over/Into/Out)、启动附加调试会话以及单元测试调试。自动识别 launchSettings.json 并兼容现有 launch.json 配置,用户无需手动编辑 JSON。该扩展填补了 Cursor 等编辑器缺乏一线 C# 调试工具的空白,使 .NET 开发者无需在编辑器与独立 IDE 间切换即可完成专业工作。
#resharper#.net#调试#vs code#cursor
$ more