Ubuntu 下 cxImage 的性能概览与定位
影响性能的关键因素
在 Ubuntu 上的快速自测方案
sudo apt-get update && sudo apt-get install -y build-essential libpng-dev libjpeg-dev libtiff-dev libgif-devgit clone https://github.com/antaressoftware/cxImage.git
mkdir cxImage/build && cd cxImage/build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
sudo make install && sudo ldconfig
g++ -O3 -o bench bench.cpp -lcximage -lpng -ljpeg -ltiff -lgif -lzpkg-config --cflags --libs cximage)。#include "ximage.h"
#include <chrono>
int main(int argc, char* argv[]) {
if (argc != 3) return 1;
CxImage img;
auto t0 = std::chrono::high_resolution_clock::now();
if (!img.Load(argv[1], CXIMAGE_FORMAT_JPG)) return 1;
img.Resample(1920, 1080, FILTER_BILINEAR); // 按需调整尺寸与插值
if (!img.Save(argv[2], CXIMAGE_FORMAT_PNG)) return 1;
auto t1 = std::chrono::high_resolution_clock::now();
auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(t1 - t0).count();
printf("Processed in %ld ms\n", ms);
return 0;
}
htop(CPU)、iostat -x 1(磁盘)、vmstat 1(内存与换页)。g++ -pg -O3 ... 运行后用 gprof 分析;valgrind --tool=callgrind 并用 kcachegrind 可视化;valgrind --leak-check=full。性能优化要点与实践建议
/dev/shm)可显著降低磁盘抖动(注意容量)。