
本文旨在解决使用 python imagecodecs 库读取 jxr 文件时,`jpegxr_decode()` 函数产生大量冗余性能报告的问题。通过分析报告来源,指出问题根源在于 `jxrlib` 库的编译配置。本文将提供一种有效的解决方案,即通过 pypi 安装 `imagecodecs`,以获取包含正确编译的 `jxrlib` 库的版本,从而禁用不必要的性能报告输出。
在使用 Python 的 imagecodecs 库处理 JXR 文件时,你可能会遇到 jpegxr_decode() 函数在每次调用时都输出大量性能报告的困扰,例如:
*************************************************************************** * Perf Report *************************************************************************** Image Width = 5120, Height = 1440, total MegaPixels = 7.4 MP m_ptEncDecPerf (excl I/O): 75.000 milliseconds, 98.304001 MP/sec *** WARNING: 500 time intervals were measured as zero. This perf timer has insufficient precision! m_ptEndToEndPerf (incl I/O): 76.000 milliseconds, 97.010529 MP/sec
这些报告信息在某些场景下显得冗余,并且 warnings.simplefilter("ignore") 方法对此无效。本文将介绍如何有效地禁用这些性能报告。
问题根源:jxrlib 库的编译配置
这些性能报告是由 imagecodecs 依赖的 jxrlib 库生成的。关键在于,jxrlib 库在编译时,如果没有使用 DISABLE_PERF_MEASUREMENT 标志,就会默认输出这些性能报告。
立即学习“Python免费学习笔记(深入)”;
解决方案:从 PyPI 安装 imagecodecs
Conda-forge 在构建 Windows 平台上的 jxrlib 时,并未包含 DISABLE_PERF_MEASUREMENT 标志。因此,通过 Conda-forge 安装的 imagecodecs 会包含一个未经优化的 jxrlib 版本,从而导致性能报告的输出。
一个有效的解决方案是从 PyPI 安装 imagecodecs。PyPI 上的 imagecodecs 包含一个正确构建的 jxrlib 库,该库在编译时禁用了性能测量,并且可能包含 Conda-forge 版本中缺失的额外编解码器。
你可以使用以下命令从 PyPI 安装 imagecodecs:
pip install imagecodecs
注意事项:
在执行此操作之前,建议先卸载通过 Conda-forge 安装的 imagecodecs,以避免版本冲突:
conda uninstall imagecodecs
确保你的 pip 工具已经更新到最新版本:
pip install --upgrade pip
总结:
通过从 PyPI 安装 imagecodecs,你可以获得一个包含正确编译的 jxrlib 库的版本,从而有效地禁用不必要的性能报告输出,并可能获得其他编解码器的支持。这是一种简单而有效的解决方案,可以提升你在使用 imagecodecs 处理 JXR 文件时的体验。
以上就是如何禁用 Python imagecodecs 的性能报告?的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号