Самый эффективный способ архивировать файлы с использованием coldfusion или java
Я ищу наиболее эффективный для памяти способ архивировать много больших файлов с помощью ColdFusion или Java. Я пытался использовать <cfzip>
и используя zip.cfc
Нейт Нильсен ( http://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>
1 ответ
Я должен бежать, поэтому не могу много печатать прямо сейчас, но вернусь к этому завтра. Вот результаты моего теста после запуска его для реальных типов файлов (.txt, .ppt, .doc, .swf и т. Д.). Похоже <cfzip>
намного лучше чем zip.cfc
,