Я ищу наиболее эффективный способ сжать много больших файлов с помощью ColdFusion или Java. Я пробовал использовать <cfzip>
и zip.cfc
от Нейта Нильсена (https://farmancreative.com/womenskiteboarding/admin/dccom/components/dcFileManagerV3/actions/cfc/zip.cfc). Для тестов я заархивировал каталог, содержащий 80 файлов mp4 общим объемом 1,18 ГБ. Результаты ниже. Я вообще не заметил разницы, когда работал тег <cfzip>
, обычные «шаги» ColdFusion не изменились. Но с zip.cfc
использование памяти было более «пилообразным».
Итак, у меня вопрос, какой результат лучше? Или есть другой более новый способ, о котором я не знаю, который лучше, чем оба этих?
Меня больше интересует использование памяти, чем скорость. Но что касается скорости, <cfzip>
был немного быстрее. <cfzip>
время было 100 871. zip.cfc
время было 141 285.
Спасибо!
<cfzip>
Тестовый код:
<cfoutput>
<cfset tBegin = GetTickCount()>
<cfzip
action="zip"
source="#dir#"
file="#zipFile#"
storepath="false"
overwrite="true"
/>
<cfset tEnd = GetTickCount()>
<cfset scriptTime = (tEnd - tBegin)>
Script Time: #scriptTime#
</cfoutput>
zip.cfc
Тестовый код:
<cfdirectory directory="#dir#" name="d" recurse="false">
<cfoutput>
<cfset tBegin = GetTickCount()>
<cfset zipper = createObject("component", "zip")>
<cfscript>zipper.newZip(zipFile);</cfscript>
<cfloop query="d">
<cfset zipper.addFile(dir&d.name)>
</cfloop>
<cfscript>zipper.createZip();</cfscript>
<cfset tEnd = GetTickCount()>
<cfset scriptTime = (tEnd - tBegin)>
Script Time: #scriptTime#
</cfoutput>