在Django 3.2版本中刚刚发布的版本,我有助于与压缩夹具和夹具压缩相关的新功能。 在本文中,我探讨了该主题并制作了一些示例基准。 如文档所报告,更改与管理命令的范围有关。 LoadData命令搜索并将命名夹具的内容加载到数据库中。 在Django 3.2版本中,添加了对XZ Archives(.xz)和LZMA档案(.lzma)的支持。 例如$ django-admin loaddata mydata.json将查找任何MyData.json,MyData.json.zip,mydata.json.gz,mydata.json.bz2,mydata.json.lzma或mydata.json.xz。 DumpData在与某些或已安装的应用程序关联的数据库中输出所有数据。 DumpData的输出可用作LoadData的输入。 在Django 3.2版本中,版本添加了支持将数据转储到压缩文件。
输出文件可以通过以相应的扩展结束文件名来使用BZ2,GZ,LZMA或XZ格式进行压缩。
例如,要将数据输出为压缩JSON文件$ django-admin dumpdata -o mydata.json.gz
在新灯具的开发中,我对从不同数据库开始的所有支持的文件格式执行基准,从小项目到更大的项目。
基准在我的PC上执行,只是将数据直接导出到不同类型的压缩文件所需的时间,文件大小,内存和CPU占用之间的关系。
架构:64位机器类型:X86_64系统GLIBC:2.32系统内存:33402449920系统释放:5.8.0-48通用系统类型:Linux Python ich.: CPython Python版本:3.8.6
从使用各种启动数据进行的基准,在将数据转发到压缩文件中,很清楚:
XZ格式几乎总是在更大的内存和CPU占用面前产生最小的文件
GZ和BZ2格式几乎始终具有与在占用空间的强大减少方面的简单和未压缩的文本文件上的执行时间相当的执行时间 生成的压缩文件中的空间增益与未压缩的文本文件相比从55%到98% 用于压缩文件的导出执行时间是在未压缩文件中导出的最坏情况(XZ),并在最佳案例(GZ)第十次更快 因此,直接向压缩文件导出夹具允许强烈降低面对创建所需的时间和资源的小幅增加。 此外,用户还有可能为其用例选择最佳文件类型,选择最大压缩(XZ)或更大的可移植性(GZ)。 阅读评论