gpt4 book ai didi

android - 由于 JIT,BouncycaSTLe AES 256 多线程解密速度下降

转载 作者:搜寻专家 更新时间:2023-11-01 09:08:01 27 4
gpt4 key购买 nike

我正在编写加密照片的应用程序,虽然它需要解密并在类似 Activity 的图库中显示缩略图。当然,您可以在不同的 Activity 中单击并查看完整尺寸的图像。我正在使用带有 256 位 key 的 AES/CBC/PKCS7Padding 密码。我使用 PBEWithSHA256And256BitAES-CBC-BC 导出密码 key 并将其存储到内存中。然后所有需要进行加密/解密的线程都使用内存中的 key 来初始化 Cipher 对象。

所以这是我的问题。当我同时解密许多图像时(假设我需要显示画廊)并且在我尝试解密全尺寸图像后,速度非常慢。另一方面,如果我只解密一个图像(无论大小),然后转到图库,然后解密全尺寸图像,速度非常快。

我真的很困惑。

那么我做错了什么?也许 Bouncy CaSTLe Crypto 库不是线程安全的?

更新:我发现这个问题与 JIT 有关。禁用 JIT 完全消除了任何处理速度差异。任何人都可以帮助理解如何优化代码以在使用多线程解密照片时强制 JIT 编译正确的部分代码以获得与开始时仅解密一张照片相同的速度吗?

最佳答案

从我们上面的讨论来看,性能下降的一个可能罪魁祸首是大量的工作线程。限制线程数量的一种可能方法是使用固定(或上限)线程池,使用 java.util.concurrent 中的类。

您可以使用合适的Executors 静态工厂方法创建固定线程池执行服务。然后,您可以创建异步任务来解密单个缩略图并使用返回的 ExecutorService 实例的 submit() 方法填充 GridView 单元格。

另一种可能是新的Loaders API (developer.android.com),但我不确定。我现在正在阅读它们以供自己使用。因此,您可能需要查看文档。

另一种选择是在 this answer 中(stackoverflow.com)。

关于android - 由于 JIT,BouncycaSTLe AES 256 多线程解密速度下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438120/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com