1

自从创建者停止工作以来,我一直在维护一个应用程序几年。该应用程序对大量图片进行批量操作,例如调整大小、应用文本、添加徽标等。

最近我一直在重写这个应用程序,以提高效率,并尝试通过使用所有可用内存并将操作拆分到多个线程来充分利用系统的所有功能。

以前的维护者以有些糟糕的方式实现了多线程,例如在 UI 线程中执行长时间操作(使停止按钮无法操作)和使用非常小的线程池。

所以我一直在优化代码并尝试增加线程池的大小,但显然没有任何改进,瓶颈似乎是读写磁盘。

有没有办法改善这种情况?

4

1 回答 1

1

准确确定应用程序此时执行的 IO。然后尝试将其转换为顺序访问模式。随机 IO 在磁盘上慢 100 倍,在 SSD 上慢 10 倍。

如果是磁盘,请确保一次只有一个线程顺序写入。如果您被迫进行随机 IO 调整最佳队列长度。

于 2013-03-09T12:31:24.970 回答