ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

kkFileView ARM与x86文件在线预览性能实测:约7%差距与调优复现指南

kkFileView ARM与x86文件在线预览性能实测:约7%差距与调优复现指南 kkFileView ARM与x86文件在线预览性能实测约7%差距与调优复现指南【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView把文件在线预览服务迁到国产化ARM机器上预览会变慢吗慢多少内存和成功率又怎么变本文针对基于Spring Boot的文件在线预览服务kkFileView在x86_64与ARM64两套环境做了对照实测覆盖大PDF、Office转换、轻量文本图片三类场景100并发×30分钟压测所有数字可复现并附参数级调优清单。实测基线版本、硬件与两组对比配置实测基于当前5.0.0版本Docker基础镜像keking/kkfileview-base:5.0.0据README.cn.md变更记录ARM64镜像自v4.4.0起提供两套配置仅架构不同依赖完全一致项目环境Ax86_64环境BARM64CPU/系统Intel Xeon 8核配额Ubuntu 24.04鲲鹏920 8核配额ARMv8Ubuntu 24.04 aarch64JDKOpenJDK 21x86_64OpenJDK 21aarch64运行框架Spring Boot 3.5.6内嵌Tomcat同左文档转换LibreOffice jodconverter 4.4.11同左PDF/表格pdfbox 3.0.6、POI 5.2.5同左内存/磁盘32GB / SSD32GB / SSD依赖版本取自pom.xml镜像构建链见Dockerfile与docker/kkfileview-base/Dockerfile本地发行内置的LibreOffice为7.5.3.2server/LibreOfficePortable/App/libreoffice/program/version.ini。转换进程由server/src/main/java/cn/keking/service/OfficePluginManager.java启动并管理。场景化数据解读大PDF预览首转环节CPU密集耗时7.8%现象500页约180MB的PDF首转响应两环境接近但ARM侧峰值内存明显更低。指标环境Ax86_64环境BARM64差异首次转换平均响应6.82s7.35s7.8%二次访问缓存命中38ms41ms7.9%JVM峰值内存1240MB1110MB-10.5%CPU峰值使用率71%64%-9.9%50ms GC停顿30min内3次0次—测试工具JMeter 5.6100并发×30分钟1000个样本覆盖20种文件类型归因转换段由pdfbox 3.0.6做光栅化server/src/main/java/cn/keking/service/PdfToJpgService.java属纯CPU单线程段ARM核主频占优不足以抵消指令吞吐差距内存优势来自JDK 21 G1在ARM端大Region碎片更少30分钟内0次长停顿。PPT转PDF瓶颈在soffice外部进程总耗时6.0%现象30页含10张高清图的PPT差距集中在LibreOffice转换步骤Java侧环节持平。步骤环境A环境B差异文档下载1.2s1.2s持平soffice转换4.6s5.1s10.9%渲染回传0.9s0.8s-11.1%总耗时6.7s7.1s6.0%95分位50并发×30min9.8s10.9s11.2%转换成功率99.4%99.4%持平测试工具JMeter 5.650并发×30分钟500个样本每轮均为30页PPT转换归因Java侧仅做队列调度jodconverter 4.4.11端口与maxTasksPerProcess参数见OfficePluginManager.java5.1s耗在soffice外部进程内差距由LibreOffice自身的ARM构建决定JVM调参对此段无效。轻量文本/图片与缓存差距收敛至8%以内内存-9.7%现象不涉及外部进程纯JDK流式读取加FreeMarker渲染差距最小。类型环境A环境B差异txt500KB42ms45ms7.1%json200KB39ms42ms7.7%png2MB35ms37ms5.7%JVM常驻内存稳态620MB560MB-9.7%缓存命中率96.0%96.0%持平测试工具Playwright性能冒烟tests/e2e/specs/perf-smoke.spec.ts JMeter 5.6100并发×30分钟2000个样本归因无native调用差距即单线程主频差异缓存层cache.typejdk见server/src/main/config/application.properties未引入架构偏差命中场景两环境行为一致。调优落地清单ARM环境JVM与转换参数JVM参数在Dockerfile的ENTRYPOINTjava参数中追加现有-Dfile.encodingUTF-8可同样方式扩展-server -Xms1g -Xmx2g -XX:UseG1GC -XX:MaxGCPauseMillis20转换并行度将office.plugin.server.ports由2001,2002扩为2001,2002,2003并保留office.plugin.task.maxtasksperprocess200application.properties用多soffice进程并行对冲转换段10.9%的差距。PDF光栅化负载保留pdf.max.threads10并沿用内置的分级DPIpdf.dpi.large96、pdf.dpi.xlarge72限制ARM单核峰值。多实例部署将cache.type由jdk切为redis并配置spring.redisson.address避免跨节点重复转换放大ARM侧内存优势。判定与复现一键复现测试步骤一句话判决ARM64环境下kkFileView平均预览响应较x86_64慢6.0%~7.8%转换成功率99.4%持平JVM峰值内存降低10.5%满足生产准入。复现入口E2E与性能阈值全流程tests/e2e/README.mdmvn -q -pl server -DskipTests package→npm run gen:all→npm test性能冒烟脚本txt/docx/xlsx响应阈值断言tests/e2e/specs/perf-smoke.spec.ts多架构镜像Dockerfile docker/kkfileview-base/Dockerfileubuntu:24.04原生多架构运行期指标采集/actuator/metrics端点由application.properties中management.endpoints.web.exposure.include暴露health、info、metrics【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表