设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 345|回复: 1

比特彗星磁盘内存缓存区块数据bt下载逻辑

[复制链接]
 成长值: 26520

签到天数: 3351 天

[LV.Master]伴坛终老

发表于 2020/11/26 06:35 | 显示全部楼层 |阅读模式 |Google Chrome 87.0.4280.66|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
下载缓存的话,之前也有位网友说过,现在逻辑是区块写入缓存,下载完成一个区块则从内存立即写入区块数据(挺好的方案,不用修改,做成2套下载缓存方案)

要改动的话,从新功能入手
做个新功能,可选开启,开启后则停用替换原有方案,启用新方案功能进行下载缓存,可以考虑jemalloc内存缓存高性能开源解决方案,可以有效降低内存读写延迟提高吞吐量,https://github.com/jemalloc/jemalloc
达到自己设置的多少值后在写入,例如256M,达到256M后组合相邻的区块为一个大区块数据一次性写入磁盘,所以开启此功能应该强制要求配合顺序下载模式可以提高磁盘写入性能?随机区块下载会导致相邻的区块过少
因为此时相邻的区块组合后是顺序写入的(未组合区块的话,还是会导致大量的IO浪费,大文件区块设置例如2MB的话,区块有好几千个,还要写入上千次),组合后就已经不是随机写入了,IO性能会提高很多。
或者设置值为10G内存,超过下载的文件大小6G,整个文件下载完成了,如果设置值大于下载的文件,组合完毕后,那么在从内存一并顺序写入进去。就和windows文件管理器拷贝文件速度一样,此时可以跑满机械硬盘220MB/s顺序写入IO。
设置的内存值大小不允许比读取缓存数值大。内存写入磁盘后,应该立即标记为写入废弃,可以受到读取缓存的在最小值和最大值内自动调整大小所使用,若长时间未读取可以进行自动释放,防止内存泄漏。
当然网上有PrimoCache 这种软件可以实现我上面说的方案,能内置的话视乎更好些,以上为自己的一些想法,可以考虑下试试标记最为以后的版本作更新。

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

签到天数: 944 天

[LV.10]以坛为家III

发表于 2020/11/27 01:17 | 显示全部楼层 |Google Chrome 87.0.4280.66|Windows 10
。。
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2021/3/7 17:36 , Processed in 0.594929 second(s), 20 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表