Skip to content

Conversation

@szsk2022
Copy link

第一次提交pr做贡献,有很多不懂的地方,有问题的话希望大佬多多指教,thanks!

概述

本次PR主要聚焦于内存管理优化、错误处理优化、构建流程改进和路径处理优化。

主要变更

修复的问题

  1. 图片加载错误处理修复

    • 修复了图片加载失败时的空指针解引用问题
    • 添加了空值检查,避免在imgnil时调用Close()
    • 增强了错误日志记录,便于问题排查
  2. SVG文件处理优化

    • 添加SVG文件跳过机制,避免不必要的转换尝试
    • SVG文件不需要WebP转换,且容易导致维度错误

性能优化

图片预取处理优化

  • 添加30秒超时机制,防止单个图片处理任务挂起
  • 添加panic恢复机制,提高系统稳定性
  • 优化错误处理流程,确保进度条正常更新

内存管理优化

  1. 内存管理类型统一
    • 核心变更:统一ExtraParams类型定义
    • encoder/memory_manager.go中的ExtraParams从本地类型改为使用config.ExtraParams
    • 影响:确保内存管理模块与配置模块的类型一致性,避免类型不匹配导致的运行时错误
    • 意义:这是内存管理模块的重要重构,提高了代码的类型安全性和可维护性

配置优化

  1. 默认路径更新

    • 将默认图片存储路径从相对路径(./pics)更新为绝对路径(/opt/pics)
    • 将默认输出路径从相对路径(./exhaust)更新为绝对路径(/opt/exhaust)
    • 更适合Docker容器化部署场景
  2. 绝对路径处理优化

    • 优化了helper/metadata.go中的绝对路径处理逻辑
    • 避免路径前缀重复,正确处理绝对路径和相对路径
  3. 内存管理类型统一

    • ConversionJob.ExtraParams类型从本地定义改为使用config.ExtraParams
    • 统一类型定义,避免类型不一致导致的潜在问题
    • 提高代码可维护性和类型安全性
    • 这是内存管理模块的重要重构,确保类型系统的一致性
  4. Dockerfile配置优化

    • 优化了config.json的sed替换逻辑,更精确匹配目标字符串
    • ""改为"./exhaust",避免误替换其他空字符串配置项

影响范围

  • 内存管理:类型统一化,提升类型安全性和代码可维护性
  • 向后兼容:配置变更不影响现有功能
  • 错误处理:显著提升系统稳定性和容错能力

@szsk2022 szsk2022 marked this pull request as draft December 22, 2025 05:37
@szsk2022 szsk2022 marked this pull request as ready for review December 22, 2025 05:38
@szsk2022 szsk2022 closed this Dec 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants