Você acha que um tempo de 80 horas pra transformar um arquivo de 100 Mega em 5 Mega inviabiliza o projeto de um compactador, ou tem gente que esperaria?
Você acha que um tempo de 80 horas pra transformar um arquivo de 100 Mega em 5 Mega inviabiliza o projeto de um compactador, ou tem gente que esperaria?
8 Respostas
Fala,
Esquecendo um pouco os seus números, eu penso no seguinte, eu quero mandar um arquivo por e-mail (E ESSA É A ÚNICA OPÇÃO) e ele é maior que o suportado. Eu posso compactar esse arquivo ou posso dividir esse arquivo e enviar vários e-mails. Eu avaliaria o que é mais rápido e o que é o menos trabalhoso.
Compactar levaria 10 min, e eu enviaria 1 e-mail. Ou fazer o split em 20 arquivos levaria 1 min, mas enviar 20 e-mails levaria 20 min. Eu preferiria Compactar, se os tempos fossem iguais, eu preferiria compactar, se o tempo de compactar não fosse muito grande, mesmo que enviar os 20 e-mails fosse muito rápido, eu ainda assim preferiria compactar.
Mas esperar 80 horas, talvez fosse melhor fazer o split e mandar 100 e-mails, ou colocar no PenDrive e entregar no final de semana.
RESPOSTA RESUMIDA: Inviabiliza.
Acho 80 horas muita coisa pra compactar 100mb …
Tenho problemas de vez em qdo em pegar um arquivo grande de 5gb, pois a conexao sempre acaba caindo no meio. Ai a solucao, que ainda nem sempre resolve, é dividir em pequenas partes, pra que se a conexao caia, nao perca tanto tempo. Mas se 100 mb demora 80 horas, 5gb demoraria 4000 horas? Impossível esperar…

“Significa!”
a questão é se tem gente que espera e sim o quanto de tempo e CPU necessario para descompactar isso?
é paralelizavel?
mesmo que inviabilize, vc ainda pode lancar este projeto como open source e talvez alguem use de outra forma ( como compactar pequenos arquivos )
Se vc puder me responder aproveita e me responde, dá pra ler um inputstream por meio de várias threads? É que eu estou lendo o arquivo através do comando inputstream.read(), em um laço for. Se eu pudesse criar threads para paralelizar como você disse eu acho que ficaria mais rápido. A minha ideia é cada thread ler um pedaço do arquivo e fazer o trabalho, mas não sei se dá, vou pesquisar. Se der ficaria quantos por cento mais rápido mais ou menos por thread criada?
Kleber,
Os ganhos dependem do processador que você estiver rodando e quantos CORES ele possui. Algo que você pode tentar fazer é rodar um Split no arquivo e depois chamar para cada arquivo o teu programa de ZIP.
supondo que o processo é paralelizavel. o que nem sempre é verdade ( ou nem sempre é linear).
Exatamente,
Estou considerando que o mesmo processo que você faz para um arquivo inteiro, você também faça para metade desse arquivo.