You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
前言
需求
脚本想调用一个第三方解密模块用来解密很多小的文件,而这个解密模块解密效率不高,解密 1.31MB 的文件需要 500ms 左右。所以想利用多进程 IO 来加速解密。
代码逻辑
通过下载器下载,已经得到一个含有未加密和加密部分的 TS 文件(比如
input.ts
),该文件通常由若干小的 TS 组成。优化的整体逻辑如下图所示:
每个进程只负责自己对应索引位置的数据,各个进程互不干扰。
第1步:从 TS 文件中识别出被加密的每一个小的 TS 切片所处的索引位置,返回类似于这样的结果:
第2步:创建一个新的 TS 文件(比如
output.ts
),与input.ts
大小一致:第3步:将
input.ts
中不加密的部分写入到output.ts
的对应位置(即seek(0)
后再写入):第4步:开始多进程调用解密模块,并在
output.ts
对应的位置写入解密后的数据:效果
单进程:
多进程:
提速效果明显。
Beta Was this translation helpful? Give feedback.
All reactions